-
- Спасибо за пояснения, уточню. Предположим у меня сумма uint8_t
summ=255, я каждую миллисекунду прибавляю или вычитаю по 1 не
выходя за пределы 0...255 Предположим у меня скважность меньше 50%
- сумма будет меняться (если построить график) как "треугольный"
сигнал 0..6 6...0 единиц каждые 12 мс. Если скважность больше 50% -
треугольный график поползет не спеша вверх, пока не упрется в 255
своей верхней частью. Где поймать пороги для детектирования я не
совсем понимаю? - Mty1(30.12.2024 17:47)
- Куда/почему поползет? Даже при 50% меандре у вас среднее будет
"болтаться" возле середины +/- 1 отсчет, т.к. период сигнала не
кратен периодичности отсчетов (12,5мс vs 1мс). Используйте уж тогда
знаковую арифметику для наглядности. Пороговыми значениями у вас
будут числа -10 и +10 (1,5 полупериода входного сигнала). А
предельными можно назначить, например, -19 и +19 (3 полупериода
входного сигнала). Если сумма в пределах +/-10, то сигнал есть,
если больше или меньше, то reZident(78 знак., 30.12.2024 18:45)
- Я имел в виду вот что. Предположим для простоты что период 12мс. Если скважность 50% (6мс+6мс)то все норм. А если сигнал 5мс=0 и 7мс=1 ? Сумма поползет вверх к значению 255, верно? - Mty1(31.12.2024 00:51)
- P.S. а, понял в чем загвоздка! При появлении сигнала (после того как он пропадал) нужно ограничить изменение суммы (только +1 или только -1) пока ее значение нуль не пересечет. - reZident(30.12.2024 18:56)
- Куда/почему поползет? Даже при 50% меандре у вас среднее будет
"болтаться" возле середины +/- 1 отсчет, т.к. период сигнала не
кратен периодичности отсчетов (12,5мс vs 1мс). Используйте уж тогда
знаковую арифметику для наглядности. Пороговыми значениями у вас
будут числа -10 и +10 (1,5 полупериода входного сигнала). А
предельными можно назначить, например, -19 и +19 (3 полупериода
входного сигнала). Если сумма в пределах +/-10, то сигнал есть,
если больше или меньше, то reZident(78 знак., 30.12.2024 18:45)
- Спасибо за пояснения, уточню. Предположим у меня сумма uint8_t
summ=255, я каждую миллисекунду прибавляю или вычитаю по 1 не
выходя за пределы 0...255 Предположим у меня скважность меньше 50%
- сумма будет меняться (если построить график) как "треугольный"
сигнал 0..6 6...0 единиц каждые 12 мс. Если скважность больше 50% -
треугольный график поползет не спеша вверх, пока не упрется в 255
своей верхней частью. Где поймать пороги для детектирования я не
совсем понимаю? - Mty1(30.12.2024 17:47)