Для чего мне эти проблемы? А все просто - используя в прерывании по переполнению таймера TMR0 регистр, я получаю один временной измерительный интервал и одну погрешность во всем диапазоне измерений.
Участок кода с прерываниями
Спойлер
;-----------------------------; Прерывания
;-----------------------------
org 0x004
movwf w_temp
swapf STATUS,W
movwf s_temp
; Проверим от чего произошло прерывание
btfsc PIR1,TMR1IF
goto No_inc_Count
; Прерывание от переполнения TMR0
inc_Count ; Добавим 1 в случае одновременного протекания
; прерываний
bcf PIR1,TMR1IF ; Сбросим признак прерывания от TMR1
bcf INTCON,T0IF ; Сбросим признак прерывания от TMR0
incf Counter2,F
swapf s_temp,W
movfw STATUS
movfw w_temp
retfie
; Прерывание от переполнения TMR1
No_inc_Count
nop
nop
nop
;nop
banksel TRISA
bcf TRISB,4 ; запретим счет.
banksel PORTA
bsf _END_
btfsc INTCON,T0IF ; Если произошло прерывание от TMR0
goto inc_Count
bcf PIR1,TMR1IF ; Сбросим признак прерывания от TMR1
swapf s_temp,W
movfw STATUS
movfw w_temp
retfie
P.S. А как в Atmel контроллерах выполняются прерывания (в какой последовательности)?

