Свежие обсуждения
Измерения

Немного критики на 1-30000 Гц генератор из любимого журнала

1 4

GM: GM
сегодня, 12:58
Wladimir_TS: РСшная софтинка того проекта виснет при любой попытке обмена с платой, во время смены частоты будет искажение сигнала.

Ну если тупо повторять, то виснет, там же бесконечный цикл, как же иначе? Здесь надо включить смекалку...тогда и виснуть не будет.

Не знаю - проходит 1 команда и виснет - со стороны PC. Если из терминалки - все проходит.


Кстати, что вы имеете в виду, говоря об искажениях во время смены сигнала?

На кривой синуса появляется ступенька, я пробывал сделать ГКЧ на базе этой разработки.

 

Для ГКЧ надо бы в цикл добавить приращение не только для полной фазы, но еще и для дельты фазы, тогда будет нормальный квазиплавный генератор.

А что такое "виснет со стороны рс, а из терминалки всё проходит"? рс !=терминалка?

 

Родная программка для управления генератором с РС виснет после передачи любой команды. Снимается только через деспетчер задач.

 

Похоже, там несоответствие посылаемых микроконтроллером байт и ожидаемых родной программой на писюке. В комментариях написано 5 байт, а реально посылается 6.

Для ГКЧ всё это плохо приспособлено. Что происходит в программе, физика процесса, так сказать. Программа молотит в фоне, выдавая выборку каждые 9 тактов. Кто-то извне решает изменить частоту на некую дельту, посылает соответствующую команду, первый байт команды прерывает фон, выдача выборок прекращается, начинается обработка принятой команды, потом как квитанция посылается 6 байт наружу, вот вам и ступенька в частоте...

Лучше уж сделать так. Добавить прерывания таймера каждые хх мс или мкс, не важно. В этом прерывании увеличивать значение ΔΦ и проверять на достижение предела, если достигли, то установить ΔΦ на минимум (период и диапазон качания частоты). В итоге ваша программа будет выдавать некую частоту, скажем в течение 10мс, затем ступенчато переходить на следующую, и т.д. Время перехода будет существенно меньше, чем в случае управления от писюка.

 
1 4