Řekl bych, že nedojde k tomu přerušení od ADC.
Je ještě použito TIM0 a v mainu je jen SLEEP.
Řešenim je kontrolovat časovačem, ale rád bych našel příčinu.
kód je zřejmě ok, ale stalo se mi to už u druhé aplikace.
//INIT ADC
admux = $0C0 //internal 2.56Vref,chan0
adcsra = $0C8 //ADEN,ADSC,ADIE
Kód: Vybrat vše
ADCCC:
ldi XL,low(ip1) //$08-$0D (ip1-ip6) reg s hodnotou, celkem 6
ldi XH,high(ip1) //$01 (ip1-ip6)
lds a,muxpos //offset 0-5 ; a=r16 b=r17
add XL,a
in b,ADCL
st X,b
in b,ADCH //naprazdno
inc a
cpi a,6
brne muxok
ldi a,0 //reset offsetu
muxok:
sts muxpos,a
ori a,$0C0
ldi b,$0C8
out admux,a
out adcsra,b
RETI