на вход ICP1 подаю импульсы с периодом 5133мкс
и пытаюсь измерить периоды каждого импульса
но таймер меряет 17 раз правильно потом 1 раз меньше на 255 мкс
и 1 раз больше на 255 мкс потом опять 13 раз правильно и цикл повторяется.
подскажите пожалуйста в чем прикол?
вот что выводиться на терминал
а ведь все цифры должны быть почти одинакомы 5133 (ну плюс минус 1 погрешгость)
Раздел: AVR
и пытаюсь измерить периоды каждого импульса
но таймер меряет 17 раз правильно потом 1 раз меньше на 255 мкс
и 1 раз больше на 255 мкс потом опять 13 раз правильно и цикл повторяется.
подскажите пожалуйста в чем прикол?
/*****************************************************
Chip type : ATmega16
Program type : Application
AVR Core Clock frequency: 8,000000 MHz
*****************************************************/
#include <mega16.h>
char ch[10];
unsigned int val=0;
unsigned int last_val=0;
unsigned int buf=0;
// Timer1 input capture interrupt service routine
interrupt [TIM1_CAPT] void timer1_capt_isr(void)
{
val=ICR1H<<8|ICR1L;
buf=val-last_val;
ltoa(buf,ch);
puts(ch);
putsf("\r\n");
last_val=val;
}
вот что выводиться на терминал
5133
5133
5133
5133
5134
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
4877
5389
5133
5133
5133
5132
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5132
5133
5133
4877
5389
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5134
5133
5133
5133
5133
4876
5389
5134
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5134
4877
5389
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5134
5133
5133
5133
5133
5133
4877
5389
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
4877
5389
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
4877
5389
5133
5133
5134
5133
5133
5132
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
4877
5389
5133
5133
5133
5133
5133
5133
5133
5134
5133
5133
5133
5133
5134
5133
5133
5133
5133
5133
4877
5389
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
4877
5389
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
4877
5389
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
4877
5389
5133
5133
5133
5133
5133
5133
5134
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
4877
5389
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
5133
а ведь все цифры должны быть почти одинакомы 5133 (ну плюс минус 1 погрешгость)
Раздел: AVR