Witam. Chciałem pobawic się z przetwornikiem A/C w medze8. Przeczytałem dokumentację i liczne posty na forum. W rezultacie wyskrobałem coś takiego:
Piszę w AVR Studio, program przechodzi kompilacje lecz na symulacji jak i w rzeczywistości nie działa. Po prostu bit ADIF nigdy sie nie ustawia. Juz brak mi pomysłów. Może ktoś z Was się orientuje jaki popełniam błąd.
Rejestr ADCSRA(w AVR Studio bez "A" na koncu) jest rejestrem sterujacym praca przetwornika.
.include "m8def.inc"
.def acc=R16
start:
sei
ldi acc,0xE0
out ADMUX,acc;wew. nap. odniesienia/wynik przesuwany do lewej
;/wejscie ADC0(PC0)
ldi acc,0x83
out ADCSRA,acc;wlaczenie przetwornika/Ck przez 8
ldi acc,0xFF
out DDRB,acc
out PORTB,acc
L0:
sbi ADCSRA,6;rozpoczecie konwersji
in acc,ADCSRA
sbrc acc,4;jesli konwersja zakonczona to skocz do wyswietlenia
rjmp L1
rjmp L0
L1:
cbi ADCSRA,6
cbi ADCSRA,4
in acc, ADCH
out PORTB,acc
rjmp L0Piszę w AVR Studio, program przechodzi kompilacje lecz na symulacji jak i w rzeczywistości nie działa. Po prostu bit ADIF nigdy sie nie ustawia. Juz brak mi pomysłów. Może ktoś z Was się orientuje jaki popełniam błąd.
Rejestr ADCSRA(w AVR Studio bez "A" na koncu) jest rejestrem sterujacym praca przetwornika.