реклама на сайте
подробности

 
 
> arm lpc2132 как замерить время?
yzhastik
сообщение Dec 20 2010, 16:16
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 20-12-10
Пользователь №: 61 759



как в программе определить разницу времени между двумя моментами? (порядки около микросекунд)

Сообщение отредактировал yzhastik - Dec 20 2010, 16:18
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Dec 21 2010, 13:10
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Для определения длительности временного промежутка достаточно взять разность значений между двумя интересующими событиями. Запустите таймер и считывайте значения его счетчика в интересующие вас моменты времени. Для вычисления промежутка времени достаточно взять беззнаковую разность этих значений, поделив ее на тактовую частоту таймера. (T2-T1)/Fclk. Где T1 это значение счетчика таймера в момент времени t1, а T2 соответствующее значение в момент времени t2 (t2 ≥ t1), Fclk - частота тактирования таймера в Гц. Максимальный промежуток времени при этом ограничивается периодом переполнения счетчика таймера. Для расширения диапазона отсчета временных интервалов можно увеличить разрядность счетчика программно. Для этого нужно разрешить прерывания от переполнения таймера и при возникновении этого прерывания инкрементировать некую переменную (назовем ее, например, TimerOVF). Тогда временные промежутки будут вычисляться как ((TimerOVFT2+T2)-(TimerOVFT1+T1))/Fclk, где TimerOVFT1, T1 и TimerOVFT2, T2 значения переменной и счетчика таймера соответственно в моменты времени t1 и t2.
Go to the top of the page
 
+Quote Post
toweroff
сообщение Dec 21 2010, 13:19
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Цитата(rezident @ Dec 21 2010, 19:10) *
Для определения длительности временного промежутка достаточно взять разность значений между двумя интересующими событиями. Запустите таймер и считывайте значения его счетчика в интересующие вас моменты времени. Для вычисления промежутка времени достаточно взять беззнаковую разность этих значений, поделив ее на тактовую частоту таймера. (T2-T1)/Fclk. Где T1 это значение счетчика таймера в момент времени t1, а T2 соответствующее значение в момент времени t2 (t2 ≥ t1), Fclk - частота тактирования таймера в Гц. Максимальный промежуток времени при этом ограничивается периодом переполнения счетчика таймера. Для расширения диапазона отсчета временных интервалов можно увеличить разрядность счетчика программно. Для этого нужно разрешить прерывания от переполнения таймера и при возникновении этого прерывания инкрементировать некую переменную (назовем ее, например, TimerOVF). Тогда временные промежутки будут вычисляться как ((TimerOVFT2+T2)-(TimerOVFT1+T1))/Fclk, где TimerOVFT1, T1 и TimerOVFT2, T2 значения переменной и счетчика таймера соответственно в моменты времени t1 и t2.

а вход-выход в п/п обработки прерывания не внесет еще бОльшие погрешности, чем 1/Fclk ? хотя.. такты входа-выхода можно и посчитать, наверное
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 00:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01378 секунд с 7
ELECTRONIX ©2004-2016