ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 ноября
755280 Топик полностью
бомж (12.05.2017 14:43 - 15:02, просмотров: 175) ответил SciFi на Счётчик цикла не инициализирован. Ну и в конце не проще ли "debounced = !debounced"? А вообще не понял, что и как. "input" - это что и откуда?
Функция вызывается каждые 10 мс. Когда функция == true, входные данные свободны от дребезга. Ещё раз извиняюсь, написал по-быстрому из памяти, но башка болит, мог ошибок наделать. Надеюсь, принцип всё ж понятен. Может, так лучше: bool keys( uint8_t input[] ) { #define INPUT_WIDTH 12 static uint8_t input_filtred [INPUT_WIDTH] = {0}; static bool debounced = false; if( debounced == false ) { debounced = true; for( uint8_t i = 0; i < INPUT_WIDTH; i++ ) input_filtred[i] |= input[i]; // set } else { debounced = false; for( uint8_t i = 0; i < INPUT_WIDTH; i++ ) input_filtred[i] &= input[i]; // reset for( uint8_t i = 0; i < INPUT_WIDTH; i++ ) input[i] = input_filtred[i]; } return !debounced; }
memento mori