ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 ноября
755277 Топик полностью
бомж (12.05.2017 14:31 - 14:45, просмотров: 277) ответил michas на Подскажите изящный цифровой фильтр для битовых значений (т.е. считываю данные с порта, на который подцеплены дискретные входы).
Я применяю свой очень простой алгоритм. Работает как часы. Дарю  bool keys( uint8_t* input ) { #define INPUT_WIDTH 12 static uint8_t input_filtred [INPUT_WIDTH] = {0}; static bool debounced = false; for( uint8_t i = 0; i < INPUT_WIDTH; i++ ) { if( debounced == false ) { input_filtred[i] |= input[i]; // set } else { input_filtred[i] &= input[i]; // reset } } input = input_filtred; if( debounced == false ) { debounced = true; return false; } else { debounced = false; return true; } } чёрт, я на больничном, поэтому по памяти мог и ошибок наделать. Но что-то в таком духе :-)
memento mori