diff --git a/software/GToE/GToE.ino b/software/GToE/GToE.ino index 05811e4..05d6454 100644 --- a/software/GToE/GToE.ino +++ b/software/GToE/GToE.ino @@ -100,14 +100,21 @@ const unsigned char splash_logo [] PROGMEM = { void setup() { //Serial.begin(9600); - //check last bit in eeprom to know if settings were stored - if (EEPROM.read(1023) == 'R') { - EEPROM.get(0, bpm); - EEPROM.get(sizeof(int), masterClockMode); - EEPROM.get(sizeof(int)+sizeof(byte), channels); + //check last bit in eeprom to know if the correct settings were stored + if (EEPROM.read(1023) == 'S') { + int addr = 0; + EEPROM.get(addr, bpm); + 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 { saveState(); - EEPROM.write(1023, 'R'); + EEPROM.write(1023, 'S'); } pinMode(ENC_BTN_PIN, INPUT_PULLUP); @@ -146,7 +153,7 @@ void loop() { display.clearDisplay(); display.display(); } - if (masterClockMode == 2 && tickCount > PULSE_LENGTH) { + if (masterClockMode == 2) { //&& tickCount > PULSE_LENGTH) { //execute only after PULSE_LENGTH to avoid delays calculateBPMTiming(); } } @@ -313,9 +320,16 @@ void resetClocks() { } void saveState() { - EEPROM.put(0, bpm); - EEPROM.put(sizeof(int), masterClockMode); - EEPROM.put(sizeof(int)+sizeof(byte), channels); + int addr = 0; + EEPROM.put(addr, bpm); + 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() {