Задача: посчитать импульсы на входе TBCLK (pin 83) за 1 сек. Импульсы приходят асинхронно от датчика.
По прерыванию Basic Timer'а (срабатывает каждую секунду) читаю TBR.
Но в мануале написано:
"When the timer clock is asynchronous to the CPU clock, any read from TBR should occur while the timer is not operating or the results may be
unpredictable."
т.е. прежде чем прочитать содержимое регистра счетчика TBR, его нужно остановить. И вообще как включить режим счетчика не написано. Ладно, включаю мозГ и пытаюсь привести все в систему =>
Управляющий регистр таймера B - TBCTL:
1 / Биты TBSSELx поставил в 00, т.е. выбрал Timer_B clock source = TBCLK.
2 / Биты MCx поставил 10, т.е. выбрал Continuous mode: the timer counts up to the value set by CNTLx.
3 / Биты CNTLx поставил 00, т.е. разрядность счетчика 16-bit, TBR(max) = 0FFFFh.
Если выставить биты MCx в 00, то получим "Stop mode: the timer is halted", т.е. таймер типа остановлен.
Так значит мне перед чтением надо обнулять биты MCx в регистре TBCTL !?
Всем спасибо за внимание и поддержку!!!!