Всем привет, учусь программировать мк stm32, хоть больше люблю плисины. Полистал примеры с антидребезгом и не очень они мне зашли и я решил попробовать реализовать по-другому таким кодом в бесконечном цикле без использования прерываний:
button = (HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_11) == GPIO_PIN_SET);
if (button != last_button) {
start_timer = HAL_GetTick();
}
else if (HAL_GetTick() - start_timer >= 50) {
debounced_button = button;
start_timer = HAL_GetTick();
}
debounced_last_button = debounced_button;
last_button = button;
Насколько это костыльно реализовано и какие подводные камни у такого антидребезга?
button = (HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_11) == GPIO_PIN_SET);
if (button != last_button) {
start_timer = HAL_GetTick();
}
else if (HAL_GetTick() - start_timer >= 50) {
debounced_button = button;
start_timer = HAL_GetTick();
}
debounced_last_button = debounced_button;
last_button = button;
Насколько это костыльно реализовано и какие подводные камни у такого антидребезга?