Цитата
Измерения нужны для калибровке RC генератора. Алгоритм калибровки из атмеловского даташита, асм частично позамствован тоже оттуда
Ага. Таки я телепат

)) Я так и думал.
Ну так вот что я Вам скажу. Если Вас не устраивает начальная точность калибровки внутреннего RC, то Вам необходимо подстраивать его все время, он от температуры и питания плавает больше погрешности заводской калибровки.
Посему я делаю так (это код, который поддерживает тактовую частоту равной 8 МГц)
Код
#pragma vector=TIMER2_OVF_vect
__interrupt void INT_PLL(void)
{
unsigned int i=TCNT1;
TCNT1=0;
if (i<7813)
OSCCAL++; //Увеличиваем тактовую частоту
else
OSCCAL--; //Уменьшаем тактовую частоту
SECOND_PULSE=1;
}
void InitPLL(void)
{
TCCR1B=5; //Прескаллер 1:1024, за одну секунду - 7812.5 тактов => сравнение с 7813
TCCR2B=5; //Прескаллер 1:128 - раз в секунду
ASSR=1<<AS2;
TIMSK2=1<<TOIE2;
}
Вот это решение правильно со всех сторон - и асма нет, и постоянно подстраивает.
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин