Перейти к содержанию
    

Измерение временных интервалов

Хотел ответить в одном сообщении, да больно тематика постов разная(:-).

Вопрос в другом, как мерять импульсы и интервалы между ними от 1 мкс и выше? Есть предложения(:-)?
Для этого Найдите форум полных извращенцев :)

А в чем проблема мерить импульсы длительностью от 1 такта ? :blink:

Цепляем сигнал к двум таймерам (Timer1 и Timer3 на Mega128) одновременно, один ловит фронт

другой спад :)

 

Пошел искать форум полных извращенцев ... :biggrin:

Не надо никуда ходить. Если импульсы идут с периодом в 1 мкс, на втором импульсе ваша система заткнется, не успеет переварить(:-).

Заметьте, я говорил только про импульсы а не про ИНТЕРВАЛЫ между ними.

Очевидно что такая система заткнется и при интервалах между импульсами в 30-40 тактов,

так как просто не будет успевать обработать полученные данные.

А вот для одиночных импульсов с достаточно большими промежутками между ними,

такая система (с двумя таймерами) вполне работоспособна.

 

А вообще, хочу вас, коллеги, огорчить(:-(. Весь сыр-бор разгорелся из-за вопроса, можно ли измерить секундный интервал с точностью 1 мкс, используя 1МГц атмегу.

 

Так вот ответ неутешительный: НЕЛЬЗЯ! Максимальная ошибка равна ПЛЮС-МИНУС ОДНА микросекунда, что в итоге составляет 2 мкс. Правы были товарищи, которые говорили нельзя, а мы не поверили коллективному разуму(:-(.

Ну это вообщем-то правда точность действительно +-1 мкс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уйду я от вас. ##пые вы :-(

 

Кто сказал 2 мкс ??? На самом деле для любого изменения состояния ошибка 0..1 мкс. Не может захват сработать раньше прихода строба!!! А вот уже для двух изменений будет +-1. Это именно запрашиваемая точность. И вообще, категоричность - признак ##пости.

Изменено пользователем GetSmart

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

singlskv Заметьте, я говорил только про импульсы а не про ИНТЕРВАЛЫ между ними.

Очевидно что такая система заткнется и при интервалах между импульсами в 30-40 тактов,

так как просто не будет успевать обработать полученные данные. А вот для одиночных импульсов с достаточно большими промежутками между ними, такая система (с двумя таймерами) вполне работоспособна.

 

Для пачки (порядка 100-200-300) коротких импульсов время обработки можно снизить до 10 тактов, но это все же не 1 такт(:-(.

 

GM А вообще, хочу вас, коллеги, огорчить(:-(. Весь сыр-бор разгорелся из-за вопроса, можно ли измерить секундный интервал с точностью 1 мкс, используя 1МГц атмегу. Так вот ответ неутешительный: НЕЛЬЗЯ! Максимальная ошибка равна ПЛЮС-МИНУС ОДНА микросекунда, что в итоге составляет 2 мкс. Правы были товарищи, которые говорили нельзя, а мы не поверили коллективному разуму(:-(.

 

singlskv Ну это в общем-то правда точность действительно +-1 мкс

 

Так шта-а, всем учить матчасть(:-). И мне в том числе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уйду я от вас. ##пые вы :-(

 

Кто сказал 2 мкс ??? На самом деле для любого изменения состояния ошибка 0..1 мкс. Не может захват сработать раньше прихода строба!!! А вот уже для двух изменений будет +-1. Это именно запрашиваемая точность. И вообще, категоричность - признак ##пости.

Ну дык я и имел в виду для двух измерений: от фронта до спада точность +-1.

 

 

singlskv Заметьте, я говорил только про импульсы а не про ИНТЕРВАЛЫ между ними.

Очевидно что такая система заткнется и при интервалах между импульсами в 30-40 тактов,

так как просто не будет успевать обработать полученные данные. А вот для одиночных импульсов с достаточно большими промежутками между ними, такая система (с двумя таймерами) вполне работоспособна.

 

Для пачки (порядка 100-200-300) коротких импульсов время обработки можно снизить до 10 тактов, но это все же не 1 такт(:-(.

ИМХО

Для одиночного единичного импульса можно определять длительности от 1 такт, но

с точностью +-1 такт. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

GetSmart Уйду я от вас. ##пые вы :-(

 

Ну куда вы пойдете, зачем? В пустыню, ##трый вы наш(:-)? Там вам АВР быстро $йца открутит, он всех оттуда распугал, неохота даже заходить(:-)

 

GetSmart Кто сказал 2 мкс ??? На самом деле для любого изменения состояния ошибка 0..1 мкс. Не может захват сработать раньше прихода строба!!! А вот уже для двух изменений будет +-1. Это именно запрашиваемая точность. И вообще, категоричность - признак ##пости.

 

Ну я сказал 2 мкс, и что? И не категорично совсем, всё подлежит обсуждению, чтобы все стороны пришли к консенсусу(:-). Вот представьте себе, вам надо отмерить 100 см рейку, а линейка ваша дает точность +-1 см. У вас рейки будут от 99 см до 101 см, т.е. 2 см разницы, так же и во времени, только в микросекундах.

 

А насчет раньше или позже, возьмите два таймера по singlskv, один фиксирует фронт, другой - спад. Представьте себе вот две ситуации.

 

1) 100.001 мкс - фронт, 102.999 мкс - спад, измерится как 2 мкс, реальная длина - 3 мкс.

 

2) 100.999 мкс - фронт, 102.001 мкс - спад, измерится как 2 мкс, реальная длина - 1 мкс.

 

Как видим, по результату измерения вы НЕ можете сказать, что реальная длина импульса лежит в пределах микросекунды, то есть от 1.5 мкс до 2.5 мкс. Вот и весь фокус.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну дык я и имел в виду для двух измерений: от фронта до спада точность +-1.

А чего поддакивали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) 100.001 мкс - фронт, 102.999 мкс - спад, измерится как 2 мкс, реальная длина - 3 мкс.

 

2) 100.999 мкс - фронт, 102.001 мкс - спад, измерится как 2 мкс, реальная длина - 1 мкс.

 

Как видим, по результату измерения вы НЕ можете сказать, что реальная длина импульса лежит в пределах микросекунды, то есть от 1.5 мкс до 2.5 мкс. Вот и весь фокус.

Если точность +-1 такт проца, то усё в порядке.

 

Вы бы лучше поведали нам про 0.5-тактовую точность. Может я бы и остался ещё ненадолго тута.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну дык я и имел в виду для двух измерений: от фронта до спада точность +-1.

А чего поддакивали?

 

Кажеться мы сейчас все говорим об одном и том же,

просто возникли непонятки в терминах =GM= считает что 2 такта это точность, но

ИМХО это называется как-то по другому, а точность она всегда +-.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы бы лучше поведали нам про 0.5-тактовую точность. Может я бы и остался ещё ненадолго тута.

Присоединяюсь.

Ну даже если Вы поняли что эта идея неосуществима, поделитесь хотя бы

в какую сторону были мысли.

Компаратор ? или что еще ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы бы лучше поведали нам про 0.5-тактовую точность. Может я бы и остался ещё ненадолго тута.

Присоединяюсь.

Ну даже если Вы поняли что эта идея неосуществима, поделитесь хотя бы

в какую сторону были мысли.

Компаратор ? или что еще ...

Да всё просто, как правда(:-). На два таймера подаете один и тот же сигнал, но один таймер считает 0-1, а второй 1-0. Сигнал захвата подаете на два ICU. После захвата анализируете содержимое двух ICU и решаете, где произошел захват, в первой половине такта или во второй, только и всего, а вы говорите точность(:-). Пользуйтесь, не жалко. Идея осуществима и удваивает точность по сравнению с обычным подходом.

 

Про точность. В обиходе, говоря точность одна единица, подразумевают +-1/2 этой самой единицы. Ну или говорят еще так, точность равна половине цены деления. Это все из одной оперы.

 

Про время. Точность измерения одна микросекунда означает, что вы сузили рамки неопределенности длины сигнала до +-0.5 мкс. Так как-то. У нас же - в два раза больше.

 

Кстати, точность не обязательно должна быть симметрична, она может быть -0.8..+0.3 или -0.1..+0.9. В пределе может быть 0..2.

Изменено пользователем =GM=

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да всё просто, как правда(:-). На два таймера подаете один и тот же сигнал, но один таймер считает 0-1, а второй 1-0. Сигнал захвата подаете на два ICU. После захвата анализируете содержимое двух ICU и решаете, где произошел захват, в первой половине такта или во второй, только и всего, а вы говорите точность(:-). Пользуйтесь, не жалко. Идея осуществима и удваивает точность по сравнению с обычным подходом.

ИМХО, захват всегда происходит в одном и том же месте такта, так что определить все таки

не удастся. А если и удастся, то, если я чего не попутал Вам необходимы как минимум

два импульса АБСОЛЮТНО одинаковой длительности.

Вообщем код в студию, и тогда обсудим...

Про точность. В обиходе, говоря точность одна единица, подразумевают +-1/2 этой самой единицы. Ну или говорят еще так, точность равна половине цены деления. Это все из одной оперы.

а что тогда используют для рассчета среднеквадратичного отклонения ?

неужели максимальную ошибку(от минимума до максимума) ?

Кстати, точность не обязательно должна быть симметрична, она может быть -0.8..+0.3 или -0.1..+0.9. В пределе может быть 0..2.

-0,8..+0.3 понимаю, в таком случае говорят что абсолютная погрешность не более 0,8 .

0..2 для нашего случая не понимаю, в каком пределе ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

=GM= Да всё просто, как правда(:-). На два таймера подаете один и тот же сигнал, но один таймер считает 0-1, а второй 1-0. Сигнал захвата подаете на два ICU. После захвата анализируете содержимое двух ICU и решаете, где произошел захват, в первой половине такта или во второй, только и всего

 

singlskv ИМХО, захват всегда происходит в одном и том же месте такта, так что определить все таки не удастся. А если и удастся, то, если я чего не попутал Вам необходимы как минимум два импульса АБСОЛЮТНО одинаковой длительности.

 

Вот не хотите думать(:-). Для первой половины такта в счетчике1 будет, скажем, 105, а в счетчике2 будет пока еще 104, для второй половины такта в счетчике1 будет, скажем, 105, а в счетчике2 будет тоже 105...Ощутите разницу(:-).

 

singlskv а что тогда используют для расчета среднеквадратичного отклонения? неужели максимальную ошибку(от минимума до максимума)?

 

СКО=КвКОРЕНЬ (СУММА((Xi-Xсреднее)^2)/(N-1))), i =1,2,...,N. По результатам одного измерения СКО не определяется. Число N должно быть большим, 50-100 и выше. Чем больше, тем лучше, зависит от задачи, конечно.

 

singlskv -0,8..+0.3 понимаю, в таком случае говорят что абсолютная погрешность не более 0,8...2 для нашего случая не понимаю, в каком пределе?

 

Для нашего случая максимальная погрешность 2 мкс.

 

Вот еще пример. Вы знаете, что был такой калибр у контролеров ОТК. Например, одна рамка должна пропускать деталь, скажем, поршень двигателя Жигуля, а вторая - нет. Ну и допуск будет такой 84.0-84.05 (вгрубе, не помню точно). Какая будет точность измерения? +-0.025 или все же 0.05?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

=GM= Да всё просто, как правда(:-). На два таймера подаете один и тот же сигнал, но один таймер считает 0-1, а второй 1-0. Сигнал захвата подаете на два ICU. После захвата анализируете содержимое двух ICU и решаете, где произошел захват, в первой половине такта или во второй, только и всего

 

singlskv ИМХО, захват всегда происходит в одном и том же месте такта, так что определить все таки не удастся. А если и удастся, то, если я чего не попутал Вам необходимы как минимум два импульса АБСОЛЮТНО одинаковой длительности.

 

Вот не хотите думать(:-). Для первой половины такта в счетчике1 будет, скажем, 105, а в счетчике2 будет пока еще 104, для второй половины такта в счетчике1 будет, скажем, 105, а в счетчике2 будет тоже 105...Ощутите разницу(:-).

про 104/105 понял, но остались вопросы, приведите код, тогда и обсудим....

singlskv а что тогда используют для расчета среднеквадратичного отклонения? неужели максимальную ошибку(от минимума до максимума)?

 

СКО=КвКОРЕНЬ (СУММА((Xi-Xсреднее)^2)/(N-1))), i =1,2,...,N. По результатам одного измерения СКО не определяется. Число N должно быть большим, 50-100 и выше. Чем больше, тем лучше, зависит от задачи.

Не, ну конечно спасибо за ликбез. но если Вы не заметили, то среднеквадратичное

отклонение зависит только от абсолютного отклонения :)

ssinglskv -0,8..+0.3 понимаю, в таком случае говорят что абсолютная погрешность не более 0,8.

0..2 для нашего случая не понимаю, в каком пределе?

Для нашего случая максимальная погрешность 2 мкс.

ну давайте назовем это максимальным размахом погрешности :), тогда да, 2 такта.... :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

singlskv ИМХО, захват всегда происходит в одном и том же месте такта, так что определить все таки не удастся. А если и удастся, то, если я чего не попутал Вам необходимы как минимум два импульса АБСОЛЮТНО одинаковой длительности.

 

Вот не хотите думать(:-). Для первой половины такта в счетчике1 будет, скажем, 105, а в счетчике2 будет пока еще 104, для второй половины такта в счетчике1 будет, скажем, 105, а в счетчике2 будет тоже 105...Ощутите разницу(:-).

Вот именно... не хотите думать...

Говорят же, захват происходит в один и тот же момент времени для обоих таймеров, следовательно оба таймера покажут одинаковый рез-тат.

Хотите "полутакт" определить - поставьте внешний D-триггер, D вход к XTAL2, C вход - к входному сигналу, т.о. в этот триггер защелкнется "полутакт".

Только нафиг оно нужно?! если повысить разрешающую способность во времени можно просто увеличив тактовую, (тем паче запас есть).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот именно... не хотите думать...

Говорят же, захват происходит в один и тот же момент времени для обоих таймеров, следовательно оба таймера покажут одинаковый рез-тат.

Хотите "полутакт" определить - поставьте внешний D-триггер, D вход к XTAL2, C вход - к входному сигналу, т.о. в этот триггер защелкнется "полутакт".

Только нафиг оно нужно?! если повысить разрешающую способность во времени можно просто увеличив тактовую, (тем паче запас есть).

Ну голубчик defunct, ну подумайте сами. Да, захват происходит (и должен происходить!) в один и тот же момент времени для обоих таймеров, но СОДЕРЖИМОЕ таймеров различается, поскольку на оба таймера подается один и тот же сигнал, но первый таймер инкрементируется на переходах 0-1, а второй будет инкрементироваться на переходах 1-0. Ну а раз содержимое различается, захват это должен показать!

 

Зачем и кому это нужно. Скажем, я хочу получить минимально возможную погрешность. Ставлю максимальную частоту 16 МГц и получаю пресловутые 2 такта погрешности, т.е. 2/16 мкс. А я хочу получить 1/16 мкс. Приведенный мной метод позволяет УДВОИТЬ точность, используя то же самое оборудование, что на мой взгляд выгодно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...