Everything is saved into EEPROM (including sequences) on change, no need to press play/stop
This commit is contained in:
@ -85,7 +85,7 @@ bool seqB8[16] = {1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0};
|
||||
bool *currentSeq;
|
||||
byte currentStep = 0;
|
||||
|
||||
byte memCode = 'A'; //Change to different letter if you changed the data structure
|
||||
byte memCode = 'a'; //Change to different letter if you changed the data structure
|
||||
|
||||
unsigned int channelPulseCount[6];
|
||||
unsigned int channelPulsesPerCycle[6];
|
||||
@ -108,9 +108,12 @@ byte displayTab = 0;
|
||||
bool insideTab = false;
|
||||
byte menuItem = 0;
|
||||
byte lastMenuItem = 3;
|
||||
byte displayScreen = 0; //0 - main, 1 - sequencer, 2 - settings
|
||||
|
||||
bool playBtnPushed = false;
|
||||
bool shiftBtnPushed = false;
|
||||
|
||||
|
||||
int a1Input = 0;
|
||||
int a2Input = 0;
|
||||
|
||||
@ -161,6 +164,38 @@ void setup() {
|
||||
EEPROM.get(addr, masterClockMode);
|
||||
addr = addr + sizeof(masterClockMode);
|
||||
EEPROM.get(addr, channels);
|
||||
addr = addr + sizeof(channels);
|
||||
EEPROM.get(addr, seqA1);
|
||||
addr = addr + sizeof(seqA1);
|
||||
EEPROM.get(addr, seqA2);
|
||||
addr = addr + sizeof(seqA2);
|
||||
EEPROM.get(addr, seqA3);
|
||||
addr = addr + sizeof(seqA3);
|
||||
EEPROM.get(addr, seqA4);
|
||||
addr = addr + sizeof(seqA4);
|
||||
EEPROM.get(addr, seqA5);
|
||||
addr = addr + sizeof(seqA5);
|
||||
EEPROM.get(addr, seqA6);
|
||||
addr = addr + sizeof(seqA6);
|
||||
EEPROM.get(addr, seqA7);
|
||||
addr = addr + sizeof(seqA7);
|
||||
EEPROM.get(addr, seqA8);
|
||||
addr = addr + sizeof(seqA8);
|
||||
EEPROM.get(addr, seqB1);
|
||||
addr = addr + sizeof(seqB1);
|
||||
EEPROM.get(addr, seqB2);
|
||||
addr = addr + sizeof(seqB2);
|
||||
EEPROM.get(addr, seqB3);
|
||||
addr = addr + sizeof(seqB3);
|
||||
EEPROM.get(addr, seqB4);
|
||||
addr = addr + sizeof(seqB4);
|
||||
EEPROM.get(addr, seqB5);
|
||||
addr = addr + sizeof(seqB5);
|
||||
EEPROM.get(addr, seqB6);
|
||||
addr = addr + sizeof(seqB6);
|
||||
EEPROM.get(addr, seqB7);
|
||||
addr = addr + sizeof(seqB7);
|
||||
EEPROM.get(addr, seqB8);
|
||||
} else {
|
||||
saveState();
|
||||
EEPROM.write(1023, memCode);
|
||||
@ -188,12 +223,6 @@ void setup() {
|
||||
|
||||
void loop() {
|
||||
checkInputs();
|
||||
/*if ((millis() - lastInteractionTime) > SCREEN_TIMEOUT) {
|
||||
display.clearDisplay();
|
||||
display.display();
|
||||
if (masterClockMode == 2 || masterClockMode == 3) {
|
||||
calculateBPMTiming();
|
||||
}}*/
|
||||
}
|
||||
|
||||
void clock() {
|
||||
@ -430,4 +459,36 @@ void saveState() {
|
||||
EEPROM.put(addr, masterClockMode);
|
||||
addr = addr + sizeof(masterClockMode);
|
||||
EEPROM.put(addr, channels);
|
||||
addr = addr + sizeof(channels);
|
||||
EEPROM.put(addr, seqA1);
|
||||
addr = addr + sizeof(seqA1);
|
||||
EEPROM.put(addr, seqA2);
|
||||
addr = addr + sizeof(seqA2);
|
||||
EEPROM.put(addr, seqA3);
|
||||
addr = addr + sizeof(seqA3);
|
||||
EEPROM.put(addr, seqA4);
|
||||
addr = addr + sizeof(seqA4);
|
||||
EEPROM.put(addr, seqA5);
|
||||
addr = addr + sizeof(seqA5);
|
||||
EEPROM.put(addr, seqA6);
|
||||
addr = addr + sizeof(seqA6);
|
||||
EEPROM.put(addr, seqA7);
|
||||
addr = addr + sizeof(seqA7);
|
||||
EEPROM.put(addr, seqA8);
|
||||
addr = addr + sizeof(seqA8);
|
||||
EEPROM.put(addr, seqB1);
|
||||
addr = addr + sizeof(seqB1);
|
||||
EEPROM.put(addr, seqB2);
|
||||
addr = addr + sizeof(seqB2);
|
||||
EEPROM.put(addr, seqB3);
|
||||
addr = addr + sizeof(seqB3);
|
||||
EEPROM.put(addr, seqB4);
|
||||
addr = addr + sizeof(seqB4);
|
||||
EEPROM.put(addr, seqB5);
|
||||
addr = addr + sizeof(seqB5);
|
||||
EEPROM.put(addr, seqB6);
|
||||
addr = addr + sizeof(seqB6);
|
||||
EEPROM.put(addr, seqB7);
|
||||
addr = addr + sizeof(seqB7);
|
||||
EEPROM.put(addr, seqB8);
|
||||
}
|
||||
Reference in New Issue
Block a user