Страница 1 из 2
					
				Измерение длительности импульса
				Добавлено: 03 июл 2018, 09:45
				 injener
				Может есть решения, ткните. 
Не могу сообразить как организовать... 
Есть изменяемая частота (к примеру как с датчика АБС(по уровню похожее), от 1гц до 250кгц) . Чем выше частота, тем короче импульс. Надо замерить интервал импульса от 1 до 0 и вывести данные в формате времени. Может код какой попробовать встроить в блок? Точнось не сильно важна, но отклонения должны быть приемлемые... Все что я пробовал или буфер переполняется и не успевает сбрасываться или низкие частоты не видит, или высокие не видит...
Это для мотора 9000об/мин. Стоит датчик и по метке на валу считывает оборот...
			 
			
					
				Измерение длительности импульса
				Добавлено: 03 июл 2018, 10:14
				 Sancho
				[ref]injener[/ref], 
Скоростной счётчик, режим измерения длительности импульса.
[spoiler]
screenshot_18-07-03_10-12-06.png
screenshot_18-07-03_10-12-30.png
[/spoiler]
 
			
					
				Измерение длительности импульса
				Добавлено: 03 июл 2018, 10:26
				 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сек работы... Начинаются прерывания в выводе данных. На скрине все настройки что нужны? Может еще что то надо?
 
			
					
				Измерение длительности импульса
				Добавлено: 03 июл 2018, 10:32
				 Sancho
				Установите галочку "вход разрешения замера" - на появившийся вход подавайте 0 во время вывода данных.
			 
			
					
				Измерение длительности импульса
				Добавлено: 03 июл 2018, 10:38
				 injener
				Вечером опробую. Спасибо.
			 
			
					
				Измерение длительности импульса
				Добавлено: 04 июл 2018, 10:53
				 injener
				Станно. Делал так до этого, не получалось. А тут прям раз и все заработало. 
[ref=#ff8000]Sancho[/ref], а не подскажешь как один импуль умножать? Посмотрел тут, умножителей что то ни кто не собирал еще...
			 
			
					
				Измерение длительности импульса
				Добавлено: 04 июл 2018, 15:53
				 Sancho
				injener писал(а): 04 июл 2018, 10:53а не подскажешь как один импуль умножать?
 
Более подробнее, что надо получить, а то не улавливаю сути вопроса...
 
			
					
				Измерение длительности импульса
				Добавлено: 04 июл 2018, 20:45
				 injener
				[ref=#ff8000]Sancho[/ref], есть частота на входе 10гц, на выходе должно быть 30гц
			 
			
					
				Измерение длительности импульса
				Добавлено: 04 июл 2018, 21:02
				 Sancho
				injener писал(а): 04 июл 2018, 20:45есть частота на входе 10гц, на выходе должно быть 30гц
 
Получил время импульса и паузы, раздели на нужное, подай на генератор.
Только с измерением по прерыванию будет проблематично запустить генератор. Возможно не прав, если использовать аппаратный таймер.
Отправлено спустя     7 минут 10 секунд:
Ещё зависит от диапазона частот и времени/периода перестройки (как часто).
 
			
					
				Измерение длительности импульса
				Добавлено: 04 июл 2018, 21:08
				 fsergei70
				Sancho писал(а): 04 июл 2018, 20:55подай на генератор
 
Саш, как запустить генератор с длительностью импульса и паузы меньше 1 микросекунды. А то получается что минимальное значение в сумме 2 микросекунды или около 500 килогерц, Если конечно я правильно перевел.  Просто стало интересно какую максимальную частоту можно с ESP выжать.
 
			
					
				Измерение длительности импульса
				Добавлено: 04 июл 2018, 21:18
				 Sancho
				fsergei70 писал(а): 04 июл 2018, 21:08Саш, как запустить генератор с длительностью импульса и паузы меньше 1 микросекунды. А то получается что минимальное значение в сумме 2 микросекунды или около 500 килогерц, Если конечно я правильно перевел. Просто стало интересно какую максимальную частоту можно с ESP выжать.
 
Написать свой генератор. 

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

Попробую попозже, работы основной подвалило...
 
А вот тут интрига! Подробнее можно? Может я сумею код собрать? Желательно на что опираться в поиске... 
И еще вопрос. Если записать данные в первую память, потом перезаписать их во вторую память и считывать уже оттуда, будет быстрее считывание? По идее пока на первую записывается, я спокойно считываю со второй...
 
			
					
				Измерение длительности импульса
				Добавлено: 05 июл 2018, 16:57
				 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]
 
			
					
				Измерение длительности импульса
				Добавлено: 05 июл 2018, 19:33
				 injener
				Sancho писал(а): 05 июл 2018, 16:57Не понял, о какой памяти идёт речь.
 
О массивах.
Sancho писал(а): 05 июл 2018, 16:57Как я вижу, эскиз, так сказать:
 
  
   Я себе это немного по другому представлял... Тогда уж лучше пристрелите меня.
Я представлял что у генератора будет выход не булеаноский...
Sancho писал(а): 05 июл 2018, 16:57Подумайте немного:
Любой генератор в мк привязан к кварцу,
Частота тем или иным образом будет привязана к производным от деления, даже если делать импульс и паузу разной длинны.
Плавного изменения в области больших частот ожидать не стоит при всём желании - скорость пина, да и программы в общем, не велика. Надо смотреть в сторону более быстрых мк.
 
Например?
 
			
					
				Измерение длительности импульса
				Добавлено: 05 июл 2018, 19:42
				 Sancho
				Есть осциллограф?
			 
			
					
				Измерение длительности импульса
				Добавлено: 05 июл 2018, 19:53
				 injener
				Sancho писал(а): 05 июл 2018, 19:42Есть осциллограф?
 
Да, комнатный остался.
 
			
					
				Измерение длительности импульса
				Добавлено: 05 июл 2018, 20:19
				 Sancho
				2Мгц потянет?
			 
			
					
				Измерение длительности импульса
				Добавлено: 05 июл 2018, 21:15
				 injener
				Sancho писал(а): 05 июл 2018, 20:192Мгц потянет?
 
Не. Не потянет. могу через 2 недели на работе замеры сделать...
Отправлено спустя     4 минуты 57 секунд:
После 5кгц падает в обморок. Ну думаю что достаточно этого множителя.
 
			
					
				Измерение длительности импульса
				Добавлено: 22 июл 2018, 15:45
				 injener
				Вот что получилось. На 5кгц еще норм, дальше заваливается в обморок. 
 Отправлено спустя    5 часов 23 минуты 14 секунд:
Отправлено спустя    5 часов 23 минуты 14 секунд:
Может кто сможет ее раскочегорить на частоту по выше? Надо хотя бы 300кгц... 
Перепробовал кучу вариантов. Или зависает или падает в обморок при попытке достать до нужной частоты. 
Повторюсь: это умножитель. К примеру входное 100гц, на выходе 300гц.
 
			
					
				Измерение длительности импульса
				Добавлено: 22 июл 2018, 16:09
				 Sancho
				injener писал(а): 22 июл 2018, 15:45Повторюсь: это умножитель. К примеру входное 100гц, на выходе 300гц.
 
Только одна мысль - по фронту дёргаем выход нужное кол-во раз. умножитель за 100 руб. не более. недорого.
Отправлено спустя      50 секунд:
без гарантированной скважности.