ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 июля
18193
alex_m (08.12.2004 08:18, просмотров: 3023)
Посмотреть, сколько натикало в таймере Приветствую. Настроил 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мксек, но там тоже были большие погрешности, я подумал что это от сильно малого значения, проверил на большем - аналогично... Где я не прав? Заранее благодарю!