avr ADC 2

e.sh

عضو جدید
با bascom-avr کار می کنم.اینم کد برنامه:
regfile = "m32def.dat"
$crystal = 4000000

Config Adc = Single , Prescaler = Auto , Reference = Off
Start Adc

Dim W(20) As Word , C As Long , I As Byte
Do
C = 0
For I = 1 To 20
W(i) = Getadc(0)
Next I
For I = 1 To 20
C = C + W(i)
Next I
C = C \ 20
Print C
Waitms 500
Loop
End
یه ارایه تعریف کردم. بعد خواستم با میانگین گیری یه کمی نوسانات رو کم کنم ولی چندان فایده ای نداشت.ضمنا ولتاژ رفرنس هم خروجی از رگولاتور 7805 است که البته این خروجی خود میکرو رو هم تغذیه می کنه.
 

behnam1988

عضو جدید
به ظاهر که برنامت موردی نداره .
اما راجب ميانگين گيری
شما 20 بار از adc ميخونی و روی w(i) ميريزیکه به نظر من کار بی فايده ایي
ولی قسمت بعدی برنامت اين کار رو ميکنه
من يه پيشنهاد دارم اين برنامه رو بنويس ببين باز مورد داره اگه باز نوسان داشت اشکال از تغذيه ات هست
regfile = "m32def.dat"
$crystal = 4000000
$buad = 9600
Config Adc = Single , Prescaler = Auto , Reference =internal
Start Adc
dim a as word
do
a = getadc(0)
print a
waitms 100
loop
end
فقط يادت باشه در اين حالت بايد کليه ی ولتاژهاي رفرنس adc رو قطع کنی و هيچي وصل نکنی و نزاری ولتاژ کانال adc از 2.56 بيشتر بشه .
 

Similar threads

بالا