Lots of changes and optimizations

- add reverse encoder menu option and save state
- improve usage of EncoderDir in ISR with pointer to instance and static isr() method.
- reduce u8g2 memory usage by using single page buffer
- improve save state behavor by using a mutex flag and update check with debounce in main loop
- make saving to EEPROM safer by wrapping put calls with noInterrupts()
This commit is contained in:
2025-06-15 19:20:16 -07:00
parent 0cef942f2c
commit 8644a3e752
7 changed files with 124 additions and 61 deletions

View File

@ -8,6 +8,7 @@
// Global state for settings and app behavior.
struct AppState {
int tempo = Clock::DEFAULT_TEMPO;
bool encoder_reversed = false;
bool refresh_screen = true;
bool editing_param = false;
int selected_param = 0;