Посмотреть, сколько натикало в таймере Приветствую.
Настроил timer1 на 10мс (миллисекунд):
SIGNAL(SIG_OUTPUT_COMPARE1A)
{
..........
}
/*
Timer/Counter1 initialization
Clock source: system clock
Prescaler value: /8
Clock value: 4Mhz
Mode: CTC top=OCR1A
Interrupt: enable
*/
void Timer1_Init(void)
{
TCCR1A = 0;
TIFR |= (1 << OCF1A);
OCR1AH = 0x27;
OCR1AL = 0x10;
TCCR1B = (1 << CS11) | (1 << WGM12); // prescale 8 & CTC
TIMSK |= (1 << OCIE1A); // enable interrupt
}
Далее, хочу проверить, что действительно таймер натикал 10мс. Использую AVR studio 3.8build 310, а там есть параметр stopwatch, находящийся во вкладке Processor в группе I/O. Далее:
1) ставлю брейкпоинт на функцию обработки прерывания от таймера
2) запускаю Run (f5)
3) по достижении breakpoint'a обнуляю Stopwatch
4) вновь жму F5 (при этом ничего не останавливая)
5) по идее теперь stopwatch Должке содержать нужное значение
На деле оно получается в два раза больше :(
Изначально мне надо было натикать 5мксек, но там тоже были большие погрешности, я подумал что это от сильно малого значения, проверил на большем - аналогично...
Где я не прав?
Заранее благодарю!