Доброго времени суток. Никак не могу понять, как настроить 8-битный таймер на прерывание раз в 1 мсек. Контроллер - мега16, внешний кварц 8 МГц.
Раз таймер 8-битный, значит счётчик считает макс до 256. Используя предделитель 256 получаю частоту: 8000000/256 = 31250Гц, значит время одного тика - 1/31250 = 32 мкс.
Для получения прерывания раз в мсек: 1/0.032 = 31,25 тика, т.е. нецелое число. При использовании других предделителей кол-во тиков переваливает за 256, т.е. нужно каким то образом корректировать счётчик, чтобы не допускать погрешности в долгосрочной перспективе. Каким образом нужно это сделать, либо как нужно грамотно настроить таймер?
Раздел: AVR
Раз таймер 8-битный, значит счётчик считает макс до 256. Используя предделитель 256 получаю частоту: 8000000/256 = 31250Гц, значит время одного тика - 1/31250 = 32 мкс.
Для получения прерывания раз в мсек: 1/0.032 = 31,25 тика, т.е. нецелое число. При использовании других предделителей кол-во тиков переваливает за 256, т.е. нужно каким то образом корректировать счётчик, чтобы не допускать погрешности в долгосрочной перспективе. Каким образом нужно это сделать, либо как нужно грамотно настроить таймер?
Раздел: AVR