SM
Guest
Wed Mar 26, 2008 1:36 pm
Mam problem z uruchomieniem ADC w ATmega32.
Na początku wywołuję jeden raz:
InitADC:
ldi R16, (1 << REFS0) + 3
out ADMUX, R16
ldi R16, (1 << ADEN) | (1 << ADPS2) | (1 << ADPS0)
out ADCSRA, R16
sbi ADCSRA, ADSC
ret
Potem w kółko:
ReadADC:
sbic ADCSRA, ADSC
ret
sbis ADCSRA, ADIF
ret
sbi ADCSRA, ADIF
in R16, ADCL
sts value, R16
sbi ADCSRA, ADSC
ret
Efekt jest taki, że value przyjmuje jakąś tam wartość zależną od
napięcia na nóżce tylko raz. Potem pozostaje bez zmian, przy czym
procedura zapisu zmiennej value jest wykonywana (program przechodzi sbic
i sbis).
Czy w tej atmedze siedzi jakiś haczyk?
Pozdrawiam,
SM
SM
Guest
Wed Mar 26, 2008 1:39 pm
SM napisał(a):
Quote:
Mam problem z uruchomieniem ADC w ATmega32.
...
Dzięki za ewentualną pomoc. Doczytałem - brak odczytu ADCH zamrażał ADCL.
SM