Witam! Mam problem z przetwornikiem adc. Programik jak ponizej:
$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