|
Измерение временных интервалов, с высокой точностью |
|
|
|
 |
Ответов
|
Oct 6 2006, 16:22
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Ну вот, опоздал к началу обсуждения, как всегда, впрочем(:-) Цитата(AVR @ Jun 2 2006, 16:03)  Как можно измерить временные интервалы дительностью несколько секунд на AVRах с точностью до микросекунды? При том что кварц стоит на 1 МГц? Емкости таймера-счетчика 16 бит для такой задачи не хватает... Задача достаточно простая, а предлагаемые решения, на мой взгляд, слишком сложные. По-моему, сделать надо вот что. Прежде всего, подключить измеряемый сигнал к схеме захвата, на таймер1 подать системный клок и выделить две 3-байтовые переменные, скажем, Т3-Т2-Т1 для хранения времени начала измеряемого интервала и Т6-Т5-Т4 для хранения времени конца интервала. Затем надо написать программу со следующим алгоритмом. 1) Обнулить Т3 и Т6. 2) Стоять здесь и ждать первого захвата. 3) Переписать значение из регистра захвата в Т2-Т1. 4) Проверить наличие переноса из таймера1. При наличии переноса добавить единицу к Т6. 5) Проверить наличие второго захвата, если нет захвата перейти к п.4. 6) После захвата переписать значение из регистра захвата в Т5-Т4. 7) Вычислить разность двух переменных Т6-Т5-Т4 и Т3-Т2-Т1, которая даст длительность интервала в микросекундах, если системная частота равна 1 МГц. Выдать результат, куда надо. 8) Переписать Т6-Т5-Т4 в Т3-Т2-Т1. 9) Перейти к п.4. Трёх байт должно хватить на длительности до 16 секунд, если надо больше, то взять 4-х байтные переменные и т.д. Относительная точность измерения будет определяться только погрешностью системной частоты +-1*Е-6.
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
|
Oct 9 2006, 10:46
|

Гуру
     
Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987

|
Цитата(=GM= @ Oct 6 2006, 20:22)  Задача достаточно простая, а предлагаемые решения, на мой взгляд, слишком сложные... Основная проблема, как уже и написал уважаемый CD_Eater, заключается в том, как сделать опорный генератор, чтобы на 1с измеряемого интервала получить погрешность (а не временнОе разрешение) в 1 мкС. Сама же методика измерения, предложенная в теме, в том числе и Вами, вопросов не вызывает.
--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
|
|
|
|
|
Oct 9 2006, 12:56
|

Ambidexter
    
Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282

|
Цитата(Stanislav @ Oct 9 2006, 09:46)  Цитата(=GM= @ Oct 6 2006, 20:22)  Задача достаточно простая, а предлагаемые решения, на мой взгляд, слишком сложные... Основная проблема, как уже и написал уважаемый CD_Eater, заключается в том, как сделать опорный генератор, чтобы на 1с измеряемого интервала получить погрешность (а не временнОе разрешение) в 1 мкс. Сама же методика измерения, предложенная в теме, в том числе и Вами, вопросов не вызывает. Поясните, что в данном случае вы понимаете под погрешностью и разрешением? И как вы их вычисляете? Мне кажется, всем будет полезно понять разницу в понятиях. На мой взгляд, погрешность метода (при наличии абсолютно точного генератора) составляет 1 мкс для секундного интервала при 1МГц системном клоке. Естественно, неточность генератора увеличивает погрешность. Хотя тут вопрос, может ли помочь тот факт, что кратковременная нестабильность (на секундном интервале) кварцевого генератора достигает 1Е-9..1Е-12?
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
Сообщений в этой теме
AVR Измерение временных интервалов Jun 2 2006, 17:03 WHALE C точностью до микросекунды с кварцем на 1Мгц ника... Jun 2 2006, 17:07 GetSmart А инкрементировать ещё одни (старшие) 16 бит по пе... Jun 2 2006, 17:10 rezident Цитата(GetSmart @ Jun 2 2006, 23:10) А ин... Jun 2 2006, 17:20 AVR Цитата(GetSmart @ Jun 2 2006, 21:10) А ин... Jun 2 2006, 17:24 GetSmart ЦитатаC точностью до микросекунды с кварцем на 1Мг... Jun 2 2006, 17:23 GetSmart Чё-то я ослеп. Речь как раз об AVR. Берёте Мегу8, ... Jun 2 2006, 17:43 defunct Цитата(GetSmart @ Jun 2 2006, 20:43) Чё-т... Jun 2 2006, 19:26 GetSmart ЦитатаНельзя выйти на точность в 1мкс в случае ког... Jun 2 2006, 19:51 defunct Цитата(GetSmart @ Jun 2 2006, 22:51) Немн... Jun 2 2006, 20:32 GetSmart ЦитатаНу представьте захвачен ICR = 0. Что делать?... Jun 2 2006, 20:54 defunct Цитата(GetSmart @ Jun 2 2006, 23:54) Цита... Jun 2 2006, 20:57 smk Цитата(GetSmart @ Jun 2 2006, 23:54) Цита... Oct 5 2006, 16:30  defunct Цитата(smk @ Oct 5 2006, 19:30) У меня си... Oct 6 2006, 11:11 GetSmart Надо только в прерывании захвата смотреть, если чи... Jun 2 2006, 21:18 defunct Цитата(GetSmart @ Jun 3 2006, 00:18) Надо... Jun 2 2006, 21:45 GetSmart ЦитатаТам это учтено:
Да, я это написал когда ещё ... Jun 2 2006, 21:53 defunct Цитата(GetSmart @ Jun 3 2006, 00:53) Кста... Jun 2 2006, 22:05 GetSmart Вроде нормальный пример. Тока непонятно зачем R0 и... Jun 2 2006, 23:02 defunct Цитата(GetSmart @ Jun 3 2006, 02:02) Хотя... Jun 3 2006, 13:02 GetSmart ??? Jun 3 2006, 05:22 Rst7 О чем вы, господа? Забыли, что внутри проца есть е... Jun 3 2006, 06:28 GetSmart О чём вы, господин? Задержка всегда постоянная. И ... Jun 3 2006, 06:53 Rst7 Э, да, вспылил, был неправ Jun 3 2006, 07:20 Валентиныч А чем вызвано ограничение по кварцу - 1 МГц? (Или ... Jun 3 2006, 14:17 GetSmart defunct
Ну ёкарный бабай...
Ещё нужно заменить ... Jun 3 2006, 17:16 defunct Цитата(GetSmart @ Jun 3 2006, 20:16) defu... Jun 3 2006, 19:05 Sergiy все хорошо ребята - мона конечно извращаться с АВР... Jun 3 2006, 21:14 smk Цитата(Sergiy @ Jun 4 2006, 00:14) частот... Oct 5 2006, 17:02 SasaVitebsk Цитата(Sergiy @ Jun 4 2006, 00:14) все хо... Oct 5 2006, 23:37  Stanislav Цитата(SasaVitebsk @ Oct 6 2006, 03:37) Ц... Oct 6 2006, 11:58 Sergiy Да кстати в продолжение темы, а знаете зачем у ква... Jun 3 2006, 21:29 king2 И вот все равно не понимаю я...
Предположим, в эт... Oct 5 2006, 01:30 CD_Eater Не пойму, к чему эти обсуждения наилучшего кода, е... Oct 5 2006, 17:56 khach Как померять? Используя ГЛИН (генератор пилы) и вн... Oct 5 2006, 19:49   Stanislav Цитата(=GM= @ Oct 9 2006, 16:56) Поясните... Oct 9 2006, 16:09 _artem_ =GM=, использование арифметических операций предпо... Oct 6 2006, 17:17 =GM= Цитата(_artem_ @ Oct 6 2006, 16:17) =GM=,... Oct 6 2006, 22:48 _artem_ Правильно говорите - я то невнимательно прочитал п... Oct 7 2006, 00:10 singlskv Подправил немного код GetSmart и defunct
- добавил... Oct 7 2006, 10:37 GetSmart Забавно. На этой странице всех повело совсем не в ... Oct 9 2006, 13:35 =GM= Цитата(singlskv @ Oct 7 2006, 09:37) Подп... Oct 9 2006, 13:59  singlskv Цитата(=GM= @ Oct 9 2006, 17:59) Хочу нем... Oct 9 2006, 16:34   Леонид Иванович ЦитатаНу и последнее, в подобных случаях предпочит... Oct 9 2006, 20:15    =GM= Цитата(Леонид Иванович @ Oct 9 2006, 19:1... Oct 10 2006, 11:04     singlskv Цитата(=GM= @ Oct 10 2006, 15:04) Что оче... Oct 10 2006, 11:19      SasaVitebsk Цитата(singlskv @ Oct 10 2006, 14:19) Цит... Oct 10 2006, 13:25       =GM= Цитата(SasaVitebsk @ Oct 10 2006, 12:25) ... Oct 10 2006, 14:36       defunct Цитата(SasaVitebsk @ Oct 10 2006, 16:25) ... Oct 10 2006, 22:32 GetSmart Цитата(=GM=)Код mov temp,r4 ;с возможным п... Oct 9 2006, 15:22 =GM= Цитата(GetSmart @ Oct 9 2006, 14:22) Цита... Oct 9 2006, 16:06 _artem_ Для микросекундной точности mожно скорректировать... Oct 9 2006, 16:11 Stanislav Цитата(_artem_ @ Oct 9 2006, 20:11) Для м... Oct 9 2006, 16:13 GetSmart Цитата(=GM=)Ничего не понял, поясните. Здесь никак... Oct 9 2006, 16:24 =GM= Цитата(GetSmart @ Oct 9 2006, 15:24) Цита... Oct 10 2006, 10:43  singlskv Цитата(=GM= @ Oct 10 2006, 14:43) 3) Одна... Oct 10 2006, 11:49   =GM= Чудак-человек, я согласен, что практически ваша пр... Oct 10 2006, 12:51    singlskv Цитата(=GM= @ Oct 10 2006, 16:51) Пусть о... Oct 10 2006, 13:23 GetSmart Павезло так павезло Oct 9 2006, 20:37 smk По моему скромному мнению, мне очень понравилась и... Oct 10 2006, 14:09 GetSmart Ой-Ой-Ой.
Ладно, господа. Я вас примирю. Использ... Oct 10 2006, 14:14 GetSmart Цитата(=GM=)Просто механически повторил ваш код, р... Oct 10 2006, 14:33 singlskv Еще подправил код:
- заменил на одну константу Con... Oct 10 2006, 16:20 =GM= Цитата(singlskv @ Oct 10 2006, 15:20) Еще... Oct 10 2006, 17:15  singlskv Цитата(=GM= @ Oct 10 2006, 21:15) Мне каж... Oct 10 2006, 17:52   =GM= Цитата(singlskv @ Oct 10 2006, 16:52) Цит... Oct 11 2006, 11:10    singlskv Цитата(=GM= @ Oct 11 2006, 15:10) Ну раз ... Oct 11 2006, 16:06  singlskv Цитата(=GM= @ Oct 10 2006, 21:15) Цитата(... Oct 10 2006, 18:06   =GM= Цитата(singlskv @ Oct 10 2006, 17:06) Цит... Oct 11 2006, 10:54 GetSmart Цитата(singlskv)Код in R5, ICR1H
mov R7, ConstF... Oct 10 2006, 20:19 singlskv [quote name='GetSmart' date='Oct 11 20... Oct 10 2006, 20:58 GetSmart defunct
Скучали тут без Вас
А почему все думают,... Oct 10 2006, 23:11 defunct Цитата(GetSmart @ Oct 11 2006, 02:01) А п... Oct 10 2006, 23:14 GetSmart Цитатакак "глюкодром" Класс!
Не, ну... Oct 10 2006, 23:34 defunct Цитата(GetSmart @ Oct 11 2006, 02:34) Не,... Oct 10 2006, 23:57 GetSmart Цитата(defunct)i - переход на длительный обработчи... Oct 11 2006, 02:49 GetSmart Цитата(=GM=)Автор топика намеревался измерять длит... Oct 11 2006, 16:25 AVR Прошу прощения за оффтоп, но для самого автора тем... Oct 11 2006, 17:25  singlskv Цитата(AVR @ Oct 11 2006, 21:25) Прошу пр... Oct 11 2006, 17:30  GetSmart Цитата(AVR @ Oct 11 2006, 23:25) Прошу пр... Oct 11 2006, 17:43 =GM= Цитата(singlskv @ Oct 11 2006, 15:06) Цит... Oct 12 2006, 09:31  defunct Цитата(=GM= @ Oct 12 2006, 12:31) А недав... Oct 15 2006, 02:25   =GM= Цитата(defunct @ Oct 15 2006, 01:25) Что ... Oct 16 2006, 13:06    defunct Цитата(=GM= @ Oct 16 2006, 16:06) Я и не ... Oct 18 2006, 11:44     =GM= Цитата(defunct @ Oct 18 2006, 10:44) Зате... Oct 18 2006, 14:14      defunct Цитата(=GM= @ Oct 18 2006, 17:14) хотя ко... Oct 18 2006, 16:04      singlskv Цитата(=GM= @ Oct 18 2006, 18:14) Но вот ... Oct 18 2006, 20:07       =GM= Цитата(singlskv @ Oct 18 2006, 19:07) Цит... Oct 19 2006, 15:21 CD_Eater Цитата(defunct @ Oct 11 2006, 03:57) Цита... Oct 11 2006, 17:59 singlskv Цитата(defunct @ Oct 11 2006, 03:14) Цита... Oct 11 2006, 20:51 GetSmart Цитата(=GM=)GetSmart, хорош бурчать, это у вас так... Oct 12 2006, 10:18 GetSmart Цитата(=GM=)Как-то вы несистемно подходите к задач... Oct 18 2006, 14:43 =GM= Цитата(GetSmart @ Oct 18 2006, 13:43) Цит... Oct 19 2006, 14:55 GetSmart defunct
Любопытная вещь. Это я где-то уже видел и ... Oct 18 2006, 17:17 singlskv Цитата(=GM= @ Oct 19 2006, 18:55) Код....... Oct 19 2006, 17:20 GetSmart Цитата(=GM=)Похоже вам слово системщик, как быку к... Oct 20 2006, 02:23 =GM= GetSmart У вас же в последней проге слишком много ... Oct 20 2006, 10:08
2 страниц
1 2 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|