Therminator [3m]
Guest
Sat Nov 13, 2004 9:29 pm
Witam!
Mam problem z przetwornikiem adc.
Programik jak ponizej:
Code:
$regfile = "8535DEF.dat"
$crystal = 8000000
Config Lcd = 16 * 4
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 =
Portb.5 , E = Portb.1 , Rs = Portb.0
Config Adc = Single , Prescaler = Auto , Reference = Internal
Enable Interrupts
Dim I As Byte
Dim Wart_adc As Word
Dim V As Single
Dim Wart_nap As String * 3
Dim Channel As Byte
Cursor Off Noblink
Cls
Waitms 1
Channel = 0
Start Adc
Do
Home
Wart_adc = Getadc(channel)
Wart_adc = Getadc(channel)
Stop Adc
Thirdline
Lcd "wart.ADC: " ; Wart_adc
V = Wart_adc * 0.0049
Wart_nap = Fusing(v , "#.&&")
Fourthline
Lcd "Napiecie: " ; Wart_nap
Waitms 100
Loop
End
Zasilanie przez LM7895 (100uF na wejsciu i wyjsciu).
AVcc podpiete do +5 przez 10uH, i przez 100nF do masy (AGND tez w tym samym
punkcie do masy).
AREF w powietrzu (bo napiecie odniesienia to Internal).
Wykorzystane tylko ADC0, ADC1-7 wolne.
Przy takim polaczeniu ADC stale zwraca wartosc 1023.
Nie reaguje na podanie masy na pin ADC0 ani innych napiec =<5V.
Ciekawe jest to ze (mimo stanow niskich i wylaczonego ADC) na pinach ADC0-3
jest caly czas napiecie okolo 2,3V a na ADC3-7 jest okolo 0,8 V.
Juz mnie cholera bierze.
Moze sie ktos spotkal juz z tym problemem?
Serdecznie pozdrawiam
Michal
Pawel Kurzawa
Guest
Sat Nov 13, 2004 9:57 pm
Quote:
Enable Interrupts
wylacz, dodaj:
Start Adc
Quote:
AREF w powietrzu (bo napiecie odniesienia to Internal).
blad, 100nF do masy.
--
--
Best regards
K@pW from Poland
kpw(at)qs.pl
http://kpw.qs.pl
UIN: 8017753
GG: 1263183
---------------- end ----------------
Therminator [3m]
Guest
Sat Nov 13, 2004 10:20 pm
Quote:
Enable Interrupts
Tonacy brzytwy sie chwyta wiec wlaczylem (wylaczenie tez bez efektow)
Quote:
wylacz, dodaj:
Start Adc
Jest wlaczane przed petla
Quote:
AREF w powietrzu (bo napiecie odniesienia to Internal).
blad, 100nF do masy.
juz podpielem ale dalej bez efektu.
Zastanawia mnie napiecie 2,3V na pinach ADC0-3 i 0,8V na pozostalych ADC
Serdecznie pozdrawiam
Michal
GG1327060
Krzysztof Gawryś
Guest
Tue Nov 16, 2004 2:25 pm
Użytkownik "Therminator [3m]" <therminator@interia.pl> napisał w wiadomości
news:cn5udi$d30$1@nemesis.news.tpi.pl...
....
Quote:
Start Adc
Do
Home
....
Stop Adc
....
Loop
....
w Twoim programie tylko pierwszy pomiar ma prawo byc prawidlowy.
a moze zrob tak?
Do
Home
Start Adc
...
Stop Adc
...
Loop
ew. po Start Adc dodaj Waitms 100, aby zdazyl dokonac pomiaru.
Pozdrawiam
Krzysiek