bpm modulation settings are now saved in EEPROM

This commit is contained in:
--global
2023-05-16 17:14:29 +03:00
parent ca9c391811
commit 6cdd94dd49

View File

@ -100,14 +100,21 @@ const unsigned char splash_logo [] PROGMEM = {
void setup() { void setup() {
//Serial.begin(9600); //Serial.begin(9600);
//check last bit in eeprom to know if settings were stored //check last bit in eeprom to know if the correct settings were stored
if (EEPROM.read(1023) == 'R') { if (EEPROM.read(1023) == 'S') {
EEPROM.get(0, bpm); int addr = 0;
EEPROM.get(sizeof(int), masterClockMode); EEPROM.get(addr, bpm);
EEPROM.get(sizeof(int)+sizeof(byte), channels); addr = addr + sizeof(bpm);
EEPROM.get(addr, bpmModulationChannel);
addr = addr + sizeof(bpmModulationChannel);
EEPROM.get(addr, bpmModulationRange);
addr = addr + sizeof(bpmModulationRange);
EEPROM.get(addr, masterClockMode);
addr = addr + sizeof(masterClockMode);
EEPROM.get(addr, channels);
} else { } else {
saveState(); saveState();
EEPROM.write(1023, 'R'); EEPROM.write(1023, 'S');
} }
pinMode(ENC_BTN_PIN, INPUT_PULLUP); pinMode(ENC_BTN_PIN, INPUT_PULLUP);
@ -146,7 +153,7 @@ void loop() {
display.clearDisplay(); display.clearDisplay();
display.display(); display.display();
} }
if (masterClockMode == 2 && tickCount > PULSE_LENGTH) { if (masterClockMode == 2) { //&& tickCount > PULSE_LENGTH) { //execute only after PULSE_LENGTH to avoid delays
calculateBPMTiming(); calculateBPMTiming();
} }
} }
@ -313,9 +320,16 @@ void resetClocks() {
} }
void saveState() { void saveState() {
EEPROM.put(0, bpm); int addr = 0;
EEPROM.put(sizeof(int), masterClockMode); EEPROM.put(addr, bpm);
EEPROM.put(sizeof(int)+sizeof(byte), channels); addr = addr + sizeof(bpm);
EEPROM.put(addr, bpmModulationChannel);
addr = addr + sizeof(bpmModulationChannel);
EEPROM.put(addr, bpmModulationRange);
addr = addr + sizeof(bpmModulationRange);
EEPROM.put(addr, masterClockMode);
addr = addr + sizeof(masterClockMode);
EEPROM.put(addr, channels);
} }
void checkInputs() { void checkInputs() {