ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
755260 Топик полностью
argus98 (12.05.2017 12:25, просмотров: 128) ответил michas на Подскажите изящный цифровой фильтр для битовых значений (т.е. считываю данные с порта, на который подцеплены дискретные входы).
OUT = (OUT*(256-F0))/256 + F0*(IN=1), где OUT - 1 байт без знака IN - входной 1-бит сигнал F0 - коэффициент частоты среза деление на 256 - целочисленное, с округлением - точнее, без округления - проще ps для 2-байтового OUT нужно 256 заменить на 65536 pps пример на асме AVR lds R2,FLT_PB7 ; текущее значение выхода фильтра lds R16,FLT_F0 ; R16 = (256 - Fсреза ФНЧ) mul R2,R16 ; умножение sbic PINB,PB7 ; если входной бит =1 sub R1,R16 ; + Fсреза ФНЧ sts FLT_PB7,R1 ; сохраняем выход фильтра