boez » 02 окт 2009, 10:58
Зачем 65536? Вот для примера как можно настроить даже 8-битный таймер как часы:
кварц 8 МГц
прескалер 64 (после него 125 кГц)
период 125 (частота переполнений таймера 1 кГц)
на таймер прерывание, в прерывании увеличиваем переменную на 1, если досчитала до 1000 - скидываем в 0 и увеличиваем вторую переменную. В первой получаем миллисекунды, во второй секунды. Ну дальше можно и часы-минуты-дни добавлять.
Для кварца 4 МГц прескалер ставим 32, он правда есть токо на втором таймере.
Если таймер 16-битный - то еще проще, 8 МГц, прескалер 256, период таймера 31250 (для 4 МГц - 15625) и переполнение таймера будет возникать раз в секунду, можно просто в основном цикле программы опрашивать флаг overflow и если он стоит - увеличивать переменную "секунды" на 1. Хотя на прерываниях удобнее для основной программы, если в ней хочется делать длинные задержки.