в интернете прочитал что для этого подойдёт режим захвата.
Объясните пожалуйста как настроить этот режим чтобы замер времени был между первыми фронтами импульсов подаваемыми на PORTD.6.
Код: Выделить всё
;========================
; Обработка прерываний
;========================
t1_icp:
; обнулить счетчик TCNT1
clr tmp
out TCNT1H,tmp
out TCNT1L,tmp
; прочитать значение ICR
in lo_icr,ICR1L
in hi_icr,ICR1H
; установить флаг готовности результатов
sbr flags,1<<ready
; вычисление переменных
inc dm
cpi dm,60
breq icp01
rjmp out_t1_icp
icp01: clr dm
inc sm
out_t1_icp:
reti
;========================
Здравствуйте. Вот пример, где вся работа основана на захвате. Может что пригодится. Правда на ассемблере.Antol.St писал(а): А откуда тогда результат брать, и в чём этот результат будет?
Код: Выделить всё
; прочитать значение ICR
in lo_icr,ICR1L
in hi_icr,ICR1HКод: Выделить всё
IN R14,ICR1L
IN R13,ICR1H ; конечное значение nox
Код: Выделить всё
CLR B
OUT TCCR1B,B
OUT TCNT1H,B
OUT TCNT1L,B