Improved Debounce for Encoders (#1837)

* Fix variable type declaration

* Fix typo

* Two-bit encoder debouncing

* Slight optimization

* Comment change
This commit is contained in:
Mark Thompson 2024-01-31 14:13:21 -06:00 committed by GitHub
parent f59f5dfaa3
commit a2a5fb166e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 41 additions and 19 deletions

View file

@ -94,13 +94,8 @@ static const int8_t transition_map[][16] = {
},
};
int_fast8_t Encoder::update(
const uint_fast8_t phase_0,
const uint_fast8_t phase_1) {
state <<= 1;
state |= phase_0;
state <<= 1;
state |= phase_1;
int_fast8_t Encoder::update(const uint_fast8_t phase_bits) {
state = (state << 2) | phase_bits;
// dial sensitivity setting is stored in pmem
return transition_map[portapack::persistent_memory::config_encoder_dial_sensitivity()][state & 0xf];