ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
5 апреля
1487678 Топик полностью
Бoмж (30.12.2024 17:44, просмотров: 337) ответил Mдэ на Без нейросети тут не обойтись.
Grok: 

Для детектирования наличия или пропадания меандра частотой 80 Гц на пине микроконтроллера STM32F4, можно использовать следующий подход: Использование таймера и прерываний: Таймер для измерения периода: Настройте один из таймеров STM32F4 (например, TIM2) для измерения периода сигнала. Установите таймер на режим захвата (Input Capture), чтобы он фиксировал время между фронтами сигнала. Это позволит вам измерять период сигнала в реальном времени. Прерывания: Используйте

прерывание по фронту сигнала на пине, чтобы запускать процесс измерения. Каждый раз, когда происходит прерывание, вы можете обновлять счётчик или буфер с последними значениями периода. Обработка данных в FreeRTOS: Кольцевой буфер: Ваша идея с кольцевым буфером хороша. Заполняйте его измеренными периодами сигнала. Размер буфера должен быть достаточным, чтобы покрыть 0.3 секунды с учетом частоты измерений (например, если тик FreeRTOS 1 мс, то буфер может содержать 300 элементов). Анализ данных: В задаче FreeRTOS, которая выполняется с периодичностью, например, каждые 100 мс, анализируйте данные в буфере. Вы можете использовать скользящее окно для оценки среднего периода сигнала. Если средний период соответствует частоте 80 Гц ±10 Гц (период около 12.5 мс с допуском от 11.1 мс до 13.9 мс), вы можете считать, что сигнал присутствует. Детектирование пропадания: Если в течение определённого времени (например, 0.3 секунды) в буфере нет значений, соответствующих частоте 80 Гц, или если значения периода резко изменяются за пределами допуска, можно сделать вывод о пропадании сигнала. Оптимизация: Дебаунсинг: Чтобы избежать ложных срабатываний из-за шума, можно ввести простой алгоритм дебанса (debounce), где сигнал считается стабильным, только если несколько последовательных измерений показывают его наличие или отсутствие. Сглаживание: Примените фильтр для сглаживания данных, например, простой скользящий средний, чтобы уменьшить влияние случайных отклонений. Этот подход позволяет использовать возможности STM32F4 и FreeRTOS для точного детектирования сигнала с достаточной гибкостью в обработке данных. Для дальнейшего уточнения или улучшения, возможно, стоит изучить специфические примеры работы с таймерами и прерываниями на STM32F4, доступные в документации и на форумах, таких как описания на habr.com или radiokot.ru.

memento mori