Не могу найти инфу как подсчитать время задержки.
На пример, мне на до сделать задежку на 480(примерно) мкс. Частота Atmega8 4 МГц.
Делаю так:
Код
ldi r17, $F8
ldi r16, $7F
call delay
..............
delay:
push r18
push r19
in r18,SREG
cli
out TCNT1H,r17
out TCNT1L,r16
sei
clt
ldi r19,1
out TCCR1B,r19
Dwait:
brtc Dwait
out SREG, r18
pop r19
pop r18
ret
Tim0int:
cli
set
ldi r19,0
out TCCR1B,r19
sei
reti
ldi r16, $7F
call delay
..............
delay:
push r18
push r19
in r18,SREG
cli
out TCNT1H,r17
out TCNT1L,r16
sei
clt
ldi r19,1
out TCCR1B,r19
Dwait:
brtc Dwait
out SREG, r18
pop r19
pop r18
ret
Tim0int:
cli
set
ldi r19,0
out TCCR1B,r19
sei
reti
Таймер суммирующий.
FFFF(16)-480(10)*4=F87F(16)
Но у меня есть подозрение, что задержка посчиатнна не верно. Подскожите, как правильно её просчитать?
Да! И можно ли в AVRStudio замереять время которое прошло между теми или иными частями кода?