Цитата(rezident @ Jun 13 2005, 22:13)
Если уж так хотите точности, то уточню так: t=(CCRx+1)/F, где CCRx код записанный в регистр сравнения, а режим таймера - счет вверх от 0x000 до CCR0 или до переполнения.
Сейчас я натолкнулся на эти грабельки
Первый раз работаю с AVR, до этого было только семейство МК51.
У меня АTMega48 (88/128)... и вроде все делаю правильно и логично:
// инициализация т/с0
TCCR0A = 2; // WGM01..WGM00=10
// Mode2: CTC (Clear Timer on Compare Match)
TCCR0B = 5; // WGM02=0 (для CTC) и таймер запущен
// CS02..CS00=101 CLK/1024 (From prescaler)
OCR0A = 108; // значение в регистр совпадения, соотв. 10мс
// 11,0592МГц/1024=10800 отсчетов в секунду
TIMSK0 = 2; // устан. прерывания по совпадению A
И пусть даже я не учёл эту "+1" (было бы число 107 в OCR0A), но прерывания генерятся не через 10мс как мне нуна, а через 115мс Не могу пока врубиться, в чём здесь лыжи...