Цитата(rezident @ Jun 8 2010, 17:30)

Во-первых, следует использовать таймер в Continuous mode, а не в Up mode. Во-вторых, где у вас настройка источников тактирования и выбор коэффициентов деления SMCLK и ACLK? В-третьих, какую размерность у вас имеет переменная MCU_Freq? Она должна быть типа unsigned long. Именно беззнаковой и 32-х битной! Ну и не мешало бы при расчете ввести еще одну временную переменную, куда сохранять промежуточное значение TACCR2 перед вычислениями.
Режим использую именно Continuous, просто вкралась ошибка именно в сообщение сюда на форум.
Далее, источники настраиваются так:
Код
// XT1 = 32.8 KHz
// XT2 = OFF
//
// DCO = 5000 KHz
// ACLK = XT1 = 32768 Hz
// MCLK = DCO = 5000 KHz
// SMCLK = DCO = 5000 KHz
Т.е. делители везде единички.
Переменная: unsigned long MCU_Freq;
Зачем вводить вторую переменную не понимаю. Компилятор прекрасно сам разберется с такой тривиальной конструкцией.
На самом деле, было бы интересно посмотреть как кто делает в своих проектах вычисление частоты DCO. Именно через таймер.