Измерение длительности импульса

injener
Сержант
Сообщения: 105
Зарегистрирован: 23 окт 2016, 09:42

Измерение длительности импульса

Сообщение injener »

Может есть решения, ткните.
Не могу сообразить как организовать...
Есть изменяемая частота (к примеру как с датчика АБС(по уровню похожее), от 1гц до 250кгц) . Чем выше частота, тем короче импульс. Надо замерить интервал импульса от 1 до 0 и вывести данные в формате времени. Может код какой попробовать встроить в блок? Точнось не сильно важна, но отклонения должны быть приемлемые... Все что я пробовал или буфер переполняется и не успевает сбрасываться или низкие частоты не видит, или высокие не видит...
Это для мотора 9000об/мин. Стоит датчик и по метке на валу считывает оборот...
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Измерение длительности импульса

Сообщение Sancho »

[ref]injener[/ref],
Скоростной счётчик, режим измерения длительности импульса.
[spoiler]
screenshot_18-07-03_10-12-06.png
screenshot_18-07-03_10-12-30.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
injener
Сержант
Сообщения: 105
Зарегистрирован: 23 окт 2016, 09:42

Измерение длительности импульса

Сообщение injener »

Sancho писал(а): 03 июл 2018, 10:14[ref]injener[/ref],
Скоростной счётчик, режим измерения длительности импульса.
[spoiler]screenshot_18-07-03_10-12-06.pngscreenshot_18-07-03_10-12-30.png[/spoiler]
Что то он у меня срывается после примерно 7-10сек работы... Начинаются прерывания в выводе данных. На скрине все настройки что нужны? Может еще что то надо?
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Измерение длительности импульса

Сообщение Sancho »

Установите галочку "вход разрешения замера" - на появившийся вход подавайте 0 во время вывода данных.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
injener
Сержант
Сообщения: 105
Зарегистрирован: 23 окт 2016, 09:42

Измерение длительности импульса

Сообщение injener »

Вечером опробую. Спасибо.
injener
Сержант
Сообщения: 105
Зарегистрирован: 23 окт 2016, 09:42

Измерение длительности импульса

Сообщение injener »

Станно. Делал так до этого, не получалось. А тут прям раз и все заработало.
[ref=#ff8000]Sancho[/ref], а не подскажешь как один импуль умножать? Посмотрел тут, умножителей что то ни кто не собирал еще...
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Измерение длительности импульса

Сообщение Sancho »

injener писал(а): 04 июл 2018, 10:53а не подскажешь как один импуль умножать?
Более подробнее, что надо получить, а то не улавливаю сути вопроса...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
injener
Сержант
Сообщения: 105
Зарегистрирован: 23 окт 2016, 09:42

Измерение длительности импульса

Сообщение injener »

[ref=#ff8000]Sancho[/ref], есть частота на входе 10гц, на выходе должно быть 30гц
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Измерение длительности импульса

Сообщение Sancho »

injener писал(а): 04 июл 2018, 20:45есть частота на входе 10гц, на выходе должно быть 30гц
Получил время импульса и паузы, раздели на нужное, подай на генератор.
Только с измерением по прерыванию будет проблематично запустить генератор. Возможно не прав, если использовать аппаратный таймер.

Отправлено спустя 7 минут 10 секунд:
Ещё зависит от диапазона частот и времени/периода перестройки (как часто).
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
fsergei70
Капитан
Сообщения: 857
Зарегистрирован: 17 ноя 2015, 20:36
Имя: Сергей
Благодарил (а): 39 раз
Поблагодарили: 7 раз

Измерение длительности импульса

Сообщение fsergei70 »

Sancho писал(а): 04 июл 2018, 20:55подай на генератор
Саш, как запустить генератор с длительностью импульса и паузы меньше 1 микросекунды. А то получается что минимальное значение в сумме 2 микросекунды или около 500 килогерц, Если конечно я правильно перевел. Просто стало интересно какую максимальную частоту можно с ESP выжать.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Измерение длительности импульса

Сообщение Sancho »

fsergei70 писал(а): 04 июл 2018, 21:08Саш, как запустить генератор с длительностью импульса и паузы меньше 1 микросекунды. А то получается что минимальное значение в сумме 2 микросекунды или около 500 килогерц, Если конечно я правильно перевел. Просто стало интересно какую максимальную частоту можно с ESP выжать.
Написать свой генератор. :)
Попробую попозже, работы основной подвалило...
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
injener
Сержант
Сообщения: 105
Зарегистрирован: 23 окт 2016, 09:42

Измерение длительности импульса

Сообщение injener »

[ref=#ff8000]Sancho[/ref], ну ведь точно! Если задействовать аппаратный таймер то он будет равен для всех!
Диапазон частот не высок. 6имп/метр. До 700кгц думаю потянет.
У меня два выхода. Первый найти датчик скорости от другой машины, но потом в приборке делитель городить. Второй собрать множитель и от него все доп устройство будет работать... Второе предпочтительнее. Сегодня буду пробовать собирать и поженить множитель с другими платами...

Отправлено спустя 10 минут 37 секунд:
Sancho писал(а): 04 июл 2018, 21:18 Написать свой генератор. :)
Попробую попозже, работы основной подвалило...
А вот тут интрига! Подробнее можно? Может я сумею код собрать? Желательно на что опираться в поиске...
И еще вопрос. Если записать данные в первую память, потом перезаписать их во вторую память и считывать уже оттуда, будет быстрее считывание? По идее пока на первую записывается, я спокойно считываю со второй...
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Измерение длительности импульса

Сообщение Sancho »

injener писал(а): 05 июл 2018, 15:59[ref=#ff8000]Sancho[/ref], ну ведь точно! Если задействовать аппаратный таймер то он будет равен для всех!
Диапазон частот не высок. 6имп/метр. До 700кгц думаю потянет.
У меня два выхода. Первый найти датчик скорости от другой машины, но потом в приборке делитель городить. Второй собрать множитель и от него все доп устройство будет работать... Второе предпочтительнее. Сегодня буду пробовать собирать и поженить множитель с другими платами...
Подумайте немного:
Любой генератор в мк привязан к кварцу,
Частота тем или иным образом будет привязана к производным от деления, даже если делать импульс и паузу разной длинны.
Плавного изменения в области больших частот ожидать не стоит при всём желании - скорость пина, да и программы в общем, не велика. Надо смотреть в сторону более быстрых мк.
injener писал(а): 05 июл 2018, 16:09И еще вопрос. Если записать данные в первую память, потом перезаписать их во вторую память и считывать уже оттуда, будет быстрее считывание? По идее пока на первую записывается, я спокойно считываю со второй...
Не понял, о какой памяти идёт речь.

Отправлено спустя 33 минуты 46 секунд:
injener писал(а): 05 июл 2018, 16:09А вот тут интрига! Подробнее можно? Может я сумею код собрать? Желательно на что опираться в поиске...
Как я вижу, эскиз, так сказать:
[spoiler=Эскиз кода]

Код: Выделить всё

volatile long unsigned int time_gen, time =0;
volatile bool work = false;
volatile byte step =2;
	По прерыванию rising обработчик 
	{
	step--;
	if(step)запускаем функцию abcd(step);
	else{time_gen=time/3; time=0; work=1;}
	
	}
   void abcd(step)
   {
   while(1){time++}	// считаем такты между фронтами в бесконечном цикле,
   // узнаём косвенно время периода
   }
   
   loop(){
   if(work)
   {
	   noInterrupts(); // хватит прерываний
	   //генерируем сигнал, используя полученное time_gen
	   // время генерации должно зависеть от полученного значения, я так думаю...
	   // Когда надоело генерить: {  work = 0; step =2; interrupts();}
	   // и идём за новыми данными
   }
   }
[/spoiler]
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
injener
Сержант
Сообщения: 105
Зарегистрирован: 23 окт 2016, 09:42

Измерение длительности импульса

Сообщение injener »

Sancho писал(а): 05 июл 2018, 16:57Не понял, о какой памяти идёт речь.
О массивах.
Sancho писал(а): 05 июл 2018, 16:57Как я вижу, эскиз, так сказать:
:shok: Я себе это немного по другому представлял... Тогда уж лучше пристрелите меня.
Я представлял что у генератора будет выход не булеаноский...
Sancho писал(а): 05 июл 2018, 16:57Подумайте немного:
Любой генератор в мк привязан к кварцу,
Частота тем или иным образом будет привязана к производным от деления, даже если делать импульс и паузу разной длинны.
Плавного изменения в области больших частот ожидать не стоит при всём желании - скорость пина, да и программы в общем, не велика. Надо смотреть в сторону более быстрых мк.
Например?
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Измерение длительности импульса

Сообщение Sancho »

Есть осциллограф?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
injener
Сержант
Сообщения: 105
Зарегистрирован: 23 окт 2016, 09:42

Измерение длительности импульса

Сообщение injener »

Sancho писал(а): 05 июл 2018, 19:42Есть осциллограф?
Да, комнатный остался.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Измерение длительности импульса

Сообщение Sancho »

2Мгц потянет?
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
injener
Сержант
Сообщения: 105
Зарегистрирован: 23 окт 2016, 09:42

Измерение длительности импульса

Сообщение injener »

Sancho писал(а): 05 июл 2018, 20:192Мгц потянет?
Не. Не потянет. могу через 2 недели на работе замеры сделать...

Отправлено спустя 4 минуты 57 секунд:
После 5кгц падает в обморок. Ну думаю что достаточно этого множителя.
injener
Сержант
Сообщения: 105
Зарегистрирован: 23 окт 2016, 09:42

Измерение длительности импульса

Сообщение injener »

Вот что получилось. На 5кгц еще норм, дальше заваливается в обморок. :smile113:

Отправлено спустя 5 часов 23 минуты 14 секунд:
Может кто сможет ее раскочегорить на частоту по выше? Надо хотя бы 300кгц...
Перепробовал кучу вариантов. Или зависает или падает в обморок при попытке достать до нужной частоты.

Повторюсь: это умножитель. К примеру входное 100гц, на выходе 300гц.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Измерение длительности импульса

Сообщение Sancho »

injener писал(а): 22 июл 2018, 15:45Повторюсь: это умножитель. К примеру входное 100гц, на выходе 300гц.
Только одна мысль - по фронту дёргаем выход нужное кол-во раз. умножитель за 100 руб. не более. недорого.

Отправлено спустя 50 секунд:
без гарантированной скважности.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Ответить

Вернуться в «Помогите, а то я "нимагу"»

Кто сейчас на конференции

Сейчас этот форум просматривают: Amazon [Bot] и 1 гость