|
Когда будешь запускать - не забывай сбрасывать TIFR.TOV0, АЦП запускается по фронту TOV0, не сбросишь его по концу преобразования АЦП - фронта не будет, и АЦП не запустится.
.include "tn45def.inc"
rjmp main
main:
ldi r16,low(ramend) ; Stack initialisation
out SPL,r16 ;
ldi r16,high(ramend);
out SPH,r16 ;
sbi DDRB,3 ; Set up an ADC activity test point (PORTB.3) as output
ldi r16,1 << CS00 ; Run TCNT0 at Fclk
out TCCR0B,r16 ;
ldi r16,5 ; Select TCNT0 as ADC trigger source
out ADCSRB,r16 ;
ldi r16,$F0 ; Enable ADC and start a first ADC conversion
out ADCSRA,r16 ;foo:
in r16,ADCSRA ; Wait for ADC conversion complete flag (ADIF)
sbrs r16,ADIF ;
rjmp foo ;
sbi PINB,3 ; Toggle a test point if ADC conversion complete
ldi r16,$B0 ; Clear ADIF but DO NOT start a new ADC conversion manually
out ADCSRA,r16 ;
in r16,TIFR ; Clear a Timer0 overflow flag - important!
out TIFR,r16 ;
rjmp foo ; Loop