bpm modulation settings are now saved in EEPROM
This commit is contained in:
@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user