История изменений
Исправление Zubok, (текущая версия) :
Только ты там внимательно manual читай. Я сейчас глянул. Самое простое будет, если, например, какой-то Timer B свободен. тогда ты просто его конфигурируешь, запускаешь в Continuous Mode с нуля, после измерения (важно!) ОСТАНАВЛИВАЕШЬ (на этот счет есть note в User Guide [1]), сразу считываешь TBxR (сколько натикал), сбрасываешь и тут же снова запускаешь. Должно получиться, но я умозрительно смотрю, так как вообще ничего не помню и надо все эти даташиты перечитывать, но ты и сам там разберешься.
Ну и затем уже существует вариант с прерыванием. Можно потом уже переписать, если что-то не понравится, на прерывания.
P.S. В этих сериях на таймере даже не один делитель, а два подряд - ID и IDEX.
[1] NOTE: Modifying Timer_B registers TI recommends stopping the timer before modifying its operation (with exception of the interrupt enable, interrupt flag, and TBCLR) to avoid errant operating conditions.
When the timer clock is asynchronous to the CPU clock, any read from TBxR should occur while the timer is not operating or the results may be unpredictable. Alternatively, the timer may be read multiple times while operating, and a majority vote taken in software to determine the correct reading. Any write to TBxR takes effect immediately.
Исправление Zubok, :
Только ты там внимательно manual читай. Я сейчас глянул. Самое простое будет, если, например, какой-то Timer B свободен. тогда ты просто его конфигурируешь, запускаешь с нуля, после измерения (важно!) ОСТАНАВЛИВАЕШЬ (на этот счет есть note в User Guide [1]), сразу считываешь TBxR (сколько натикал), сбрасываешь и тут же снова запускаешь. Должно получиться, но я умозрительно смотрю, так как вообще ничего не помню и надо все эти даташиты перечитывать, но ты и сам там разберешься.
Ну и затем уже существует вариант с прерыванием. Можно потом уже переписать, если что-то не понравится, на прерывания.
P.S. В этих сериях на таймере даже не один делитель, а два подряд - ID и IDEX.
[1] NOTE: Modifying Timer_B registers TI recommends stopping the timer before modifying its operation (with exception of the interrupt enable, interrupt flag, and TBCLR) to avoid errant operating conditions.
When the timer clock is asynchronous to the CPU clock, any read from TBxR should occur while the timer is not operating or the results may be unpredictable. Alternatively, the timer may be read multiple times while operating, and a majority vote taken in software to determine the correct reading. Any write to TBxR takes effect immediately.
Исходная версия Zubok, :
Только ты там внимательно manual читай. Я сейчас глянул. Самое простое будет, если, например, какой-то Timer B свободен. тогда ты просто его конфигурируешь, запускаешь с нуля, после измерения (важно!) ОСТАНАВЛИВАЕШЬ (на этот счет есть note в User Guide [1]), сразу считываешь TBxR )сколько натикал), сбрасываешь и тут же снова запускаешь. Должно получиться, но я умозрительно смотрю, так как вообще ничего не помню и надо все эти даташиты перечитывать, но ты и сам там разберешься.
Ну и затем уже существует вариант с прерыванием. Можно потом уже переписать, если что-то не понравится, на прерывания.
[1] NOTE: Modifying Timer_B registers TI recommends stopping the timer before modifying its operation (with exception of the interrupt enable, interrupt flag, and TBCLR) to avoid errant operating conditions.
When the timer clock is asynchronous to the CPU clock, any read from TBxR should occur while the timer is not operating or the results may be unpredictable. Alternatively, the timer may be read multiple times while operating, and a majority vote taken in software to determine the correct reading. Any write to TBxR takes effect immediately.