Comments 14
А это разводка Топора там, на плате, в самом верху?
0
Жуткая АЧХ — ниже 2,5 кГц бузер практически не пищит.
Хотя пищалка, конечно…
Круто было-бы реализовать вывод «аналогового» звука — через ШИМ на сотню килогерц или поболе, хотя вопрос потянет ли это процессор.
А «просто» пищать меандром — не так интересно.
Хотя пищалка, конечно…
Круто было-бы реализовать вывод «аналогового» звука — через ШИМ на сотню килогерц или поболе, хотя вопрос потянет ли это процессор.
А «просто» пищать меандром — не так интересно.
0
Любопытно, а в чём конкретно _ужас_ аппаратного обработчика энкодера? У меня в добром десятке проектов на STM32 он использован и всё работает без замечаний, считает каждый тик как… часы, простите за каламбур :)
0
У меня он работал очень плохо, без преувеличесний. Много ложных срабатываний. Ради интереса покажу позже код инициализации и то, как это работает.
А серия тоже f103? Может, в старших камнях исправили?
А серия тоже f103? Может, в старших камнях исправили?
0
Разводка радует :) Сразу вспоминается, «там на неведомых дорожках, следы невиданных зверей»
0
Ммм… о какой переносимости вы говорите? вот если бы у BuzzerConfig(void) были параметры ввиде вывода GPIO, таймера и номера его канала тогда не придётся весь код заново перелопачивать.
0
О хорошей переносимости между программами, использующими FreeRTOS. Точнее даже, о сложной переносимости самодельных способов синхронизации между задачами. Мне лично проще потратить двадцать минут и исправить конфигурацию функций инициализации руками, чем создавать полностью универсальные функции.
ST уже пробовали так сделать и что вышло? Ага, SPL. Не то, что бы совсем плохо, но ругаться есть на что. Каждый сам выбирает себе эту грань, главное не вдаваться в крайности.
ST уже пробовали так сделать и что вышло? Ага, SPL. Не то, что бы совсем плохо, но ругаться есть на что. Каждый сам выбирает себе эту грань, главное не вдаваться в крайности.
0
Кстати, в отдельном файле у меня все же есть макросы BUZZER_PIN, BUZZER_PORT, BUZZER_CLK_PINS (BuzzerConfig(void)). Туда же, при желании, можно записать таймер:
#define BUZZER_TIM TIM2
#define BUZZER_CH CH1
0
А есть у этих МК аппаратная возможность управлять мощным пьезопреобразователем?
Нужна автоподстройка частоты.
Нужна автоподстройка частоты.
0
Если честно, не очень понял, о чем речь. Скорее всего, нету, но вы можете проверить сами!
0
Спасибо за даташит, изучаю.
У AVR есть механизм zero-crossing, который позволяет сделать настройку на резонанс.
Разрабатываю управление мощным пьезопреобразователем 1-2 кВт.
А сам проект, ультразвуковая обработка молока.
У AVR есть механизм zero-crossing, который позволяет сделать настройку на резонанс.
Разрабатываю управление мощным пьезопреобразователем 1-2 кВт.
А сам проект, ультразвуковая обработка молока.
0
Проще же сделать это на внешних компонентах, а МК использовать любой, который удобно программировать.
К примеру, я когда-то делал Zero-crossing на компаратор + аналоговый мультиплексор (Low Capacitance, Low Charge Injection)
Нужно было измерять только положительную полуволну синуса микроконтроллером (сигнал симметричен был). В схеме компаратор кроме того, что детектирует переход через 0, так еще и переключает мультиплексор так, что бы в положительную полуволну сигнал шел на АЦП МК, а в отрицательную выдавал 0.
К примеру, я когда-то делал Zero-crossing на компаратор + аналоговый мультиплексор (Low Capacitance, Low Charge Injection)
Нужно было измерять только положительную полуволну синуса микроконтроллером (сигнал симметричен был). В схеме компаратор кроме того, что детектирует переход через 0, так еще и переключает мультиплексор так, что бы в положительную полуволну сигнал шел на АЦП МК, а в отрицательную выдавал 0.
0
Sign up to leave a comment.
Articles
Change theme settings
STM32: FreeRTOS и пьезокерамический излучатель