Понимаю что тема давно забыта,но поскажите в чём ошибка ,без прерывания т.е. при заполнени только регистровой пары TCNT1H и TCNT1L считает хорошо,а вот с прерываниями полный...
ATmega16
Код
SIGNAL(SIG_OVERFLOW1)
{
count_F++;
}
int main(void)
{
TIMSK=1<<TOIE1;
sei();
uint8_t count_F=0;
TCNT1=0;
TCCR1A=0;
TCCR1B=7;//разрешаем заполнение счётчика внешними импульсами
_delay_ms(1000)//задержка 1сек
TCCR1B=0;//остановка счётчика
TIMSK=0<<TOIE1;
uint64_t temp=65535*count_F;//количество прерываний
uint16_t val=TCNT1;//считываем показания счётчика
temp=temp+val;
ltoa(temp,string,10);// преобразуем в десятичный вид
lcd<<string;
}
Причина редактирования: Оформление цитаты исходника.