Added check for change vs stored setting before writing to EEPROM to reduce number of writes.

This commit is contained in:
Johan Berglund 2017-08-27 21:17:50 +02:00
parent 40e8760de3
commit 314bdccada

View file

@ -8,7 +8,7 @@
/* /*
NAME: NuEVI NAME: NuEVI
WRITTEN BY: JOHAN BERGLUND WRITTEN BY: JOHAN BERGLUND
DATE: 2017-08-08 DATE: 2017-08-26
FILE SAVED AS: NuEVI.ino FILE SAVED AS: NuEVI.ino
FOR: PJRC Teensy LC or 3.2 and a MPR121 capactive touch sensor board. FOR: PJRC Teensy LC or 3.2 and a MPR121 capactive touch sensor board.
Uses an SSD1306 controlled OLED dispaly communicating over I2C. Uses an SSD1306 controlled OLED dispaly communicating over I2C.
@ -313,7 +313,7 @@ int oldextrac=0;
int pitchBend=0; int pitchBend=0;
int oldpb=8192; int oldpb=8192;
int vibDepth[8] = {0,31,63,127,254,1023,2047,4095}; int vibDepth[8] = {0,31,63,127,254,1023,2047,4095}; // these values need too be looked over
int vibThr=1800; int vibThr=1800;
int oldvibRead=0; int oldvibRead=0;
@ -961,7 +961,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subTranspose = 0; subTranspose = 0;
writeSetting(TRANSP_ADDR,transpose); if (readSetting(TRANSP_ADDR) != transpose) writeSetting(TRANSP_ADDR,transpose);
break; break;
case 4: case 4:
// up // up
@ -980,7 +980,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subTranspose = 0; subTranspose = 0;
writeSetting(TRANSP_ADDR,transpose); if (readSetting(TRANSP_ADDR) != transpose) writeSetting(TRANSP_ADDR,transpose);
break; break;
} }
} }
@ -1011,7 +1011,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subOctave = 0; subOctave = 0;
writeSetting(OCTAVE_ADDR,octave); if (readSetting(OCTAVE_ADDR) != octave) writeSetting(OCTAVE_ADDR,octave);
break; break;
case 4: case 4:
// up // up
@ -1030,7 +1030,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subOctave = 0; subOctave = 0;
writeSetting(OCTAVE_ADDR,octave); if (readSetting(OCTAVE_ADDR) != octave) writeSetting(OCTAVE_ADDR,octave);
break; break;
} }
} }
@ -1061,7 +1061,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subMIDI = 0; subMIDI = 0;
writeSetting(MIDI_ADDR,MIDIchannel); if (readSetting(MIDI_ADDR) != MIDIchannel) writeSetting(MIDI_ADDR,MIDIchannel);
break; break;
case 4: case 4:
// up // up
@ -1080,7 +1080,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subMIDI = 0; subMIDI = 0;
writeSetting(MIDI_ADDR,MIDIchannel); if (readSetting(MIDI_ADDR) != MIDIchannel) writeSetting(MIDI_ADDR,MIDIchannel);
break; break;
} }
} }
@ -1146,8 +1146,8 @@ void menu() {
// down // down
state = PORTAM_ADJ_IDL; state = PORTAM_ADJ_IDL;
stateFirstRun = 1; stateFirstRun = 1;
writeSetting(BREATH_THR_ADDR,breathThrVal); if (readSetting(BREATH_THR_ADDR) != breathThrVal) writeSetting(BREATH_THR_ADDR,breathThrVal);
writeSetting(breathMaxVal_ADDR,breathMaxVal); if (readSetting(BREATH_MAX_ADDR) != breathMaxVal) writeSetting(BREATH_MAX_ADDR,breathMaxVal);
break; break;
case 2: case 2:
// enter // enter
@ -1157,15 +1157,15 @@ void menu() {
// up // up
state = EXTRAC_ADJ_IDL; state = EXTRAC_ADJ_IDL;
stateFirstRun = 1; stateFirstRun = 1;
writeSetting(BREATH_THR_ADDR,breathThrVal); if (readSetting(BREATH_THR_ADDR) != breathThrVal) writeSetting(BREATH_THR_ADDR,breathThrVal);
writeSetting(breathMaxVal_ADDR,breathMaxVal); if (readSetting(BREATH_MAX_ADDR) != breathMaxVal) writeSetting(BREATH_MAX_ADDR,breathMaxVal);
break; break;
case 8: case 8:
// menu // menu
state = MAIN_MENU; state = MAIN_MENU;
stateFirstRun = 1; stateFirstRun = 1;
writeSetting(BREATH_THR_ADDR,breathThrVal); if (readSetting(BREATH_THR_ADDR) != breathThrVal) writeSetting(BREATH_THR_ADDR,breathThrVal);
writeSetting(breathMaxVal_ADDR,breathMaxVal); if (readSetting(BREATH_MAX_ADDR) != breathMaxVal) writeSetting(BREATH_MAX_ADDR,breathMaxVal);
break; break;
} }
} }
@ -1283,8 +1283,8 @@ void menu() {
// down // down
state = PITCHB_ADJ_IDL; state = PITCHB_ADJ_IDL;
stateFirstRun = 1; stateFirstRun = 1;
writeSetting(PORTAM_THR_ADDR,portamThrVal); if (readSetting(PORTAM_THR_ADDR) != portamThrVal) writeSetting(PORTAM_THR_ADDR,portamThrVal);
writeSetting(PORTAM_MAX_ADDR,portamMaxVal); if (readSetting(PORTAM_MAX_ADDR) != portamMaxVal) writeSetting(PORTAM_MAX_ADDR,portamMaxVal);
break; break;
case 2: case 2:
// enter // enter
@ -1294,15 +1294,15 @@ void menu() {
// up // up
state = BREATH_ADJ_IDL; state = BREATH_ADJ_IDL;
stateFirstRun = 1; stateFirstRun = 1;
writeSetting(PORTAM_THR_ADDR,portamThrVal); if (readSetting(PORTAM_THR_ADDR) != portamThrVal) writeSetting(PORTAM_THR_ADDR,portamThrVal);
writeSetting(PORTAM_MAX_ADDR,portamMaxVal); if (readSetting(PORTAM_MAX_ADDR) != portamMaxVal) writeSetting(PORTAM_MAX_ADDR,portamMaxVal);
break; break;
case 8: case 8:
// menu // menu
state = MAIN_MENU; state = MAIN_MENU;
stateFirstRun = 1; stateFirstRun = 1;
writeSetting(PORTAM_THR_ADDR,portamThrVal); if (readSetting(PORTAM_THR_ADDR) != portamThrVal) writeSetting(PORTAM_THR_ADDR,portamThrVal);
writeSetting(PORTAM_MAX_ADDR,portamMaxVal); if (readSetting(PORTAM_MAX_ADDR) != portamMaxVal) writeSetting(PORTAM_MAX_ADDR,portamMaxVal);
break; break;
} }
} }
@ -1420,8 +1420,8 @@ void menu() {
// down // down
state = EXTRAC_ADJ_IDL; state = EXTRAC_ADJ_IDL;
stateFirstRun = 1; stateFirstRun = 1;
writeSetting(PITCHB_THR_ADDR,pitchbThrVal); if (readSetting(PITCHB_THR_ADDR) != pitchbThrVal) writeSetting(PITCHB_THR_ADDR,pitchbThrVal);
writeSetting(PITCHB_MAX_ADDR,pitchbMaxVal); if (readSetting(PITCHB_MAX_ADDR) != pitchbMaxVal) writeSetting(PITCHB_MAX_ADDR,pitchbMaxVal);
break; break;
case 2: case 2:
// enter // enter
@ -1431,15 +1431,15 @@ void menu() {
// up // up
state = PORTAM_ADJ_IDL; state = PORTAM_ADJ_IDL;
stateFirstRun = 1; stateFirstRun = 1;
writeSetting(PITCHB_THR_ADDR,pitchbThrVal); if (readSetting(PITCHB_THR_ADDR) != pitchbThrVal) writeSetting(PITCHB_THR_ADDR,pitchbThrVal);
writeSetting(PITCHB_MAX_ADDR,pitchbMaxVal); if (readSetting(PITCHB_MAX_ADDR) != pitchbMaxVal) writeSetting(PITCHB_MAX_ADDR,pitchbMaxVal);
break; break;
case 8: case 8:
// menu // menu
state = MAIN_MENU; state = MAIN_MENU;
stateFirstRun = 1; stateFirstRun = 1;
writeSetting(PITCHB_THR_ADDR,pitchbThrVal); if (readSetting(PITCHB_THR_ADDR) != pitchbThrVal) writeSetting(PITCHB_THR_ADDR,pitchbThrVal);
writeSetting(PITCHB_MAX_ADDR,pitchbMaxVal); if (readSetting(PITCHB_MAX_ADDR) != pitchbMaxVal) writeSetting(PITCHB_MAX_ADDR,pitchbMaxVal);
break; break;
} }
} }
@ -1558,8 +1558,8 @@ void menu() {
// down // down
state = BREATH_ADJ_IDL; state = BREATH_ADJ_IDL;
stateFirstRun = 1; stateFirstRun = 1;
writeSetting(EXTRAC_THR_ADDR,pitchbThrVal); if (readSetting(EXTRAC_THR_ADDR) != extracThrVal) writeSetting(EXTRAC_THR_ADDR,extracThrVal);
writeSetting(EXTRAC_MAX_ADDR,pitchbMaxVal); if (readSetting(EXTRAC_MAX_ADDR) != extracMaxVal) writeSetting(EXTRAC_MAX_ADDR,extracMaxVal);
break; break;
case 2: case 2:
// enter // enter
@ -1569,15 +1569,15 @@ void menu() {
// up // up
state = PITCHB_ADJ_IDL; state = PITCHB_ADJ_IDL;
stateFirstRun = 1; stateFirstRun = 1;
writeSetting(EXTRAC_THR_ADDR,pitchbThrVal); if (readSetting(EXTRAC_THR_ADDR) != extracThrVal) writeSetting(EXTRAC_THR_ADDR,extracThrVal);
writeSetting(EXTRAC_MAX_ADDR,pitchbMaxVal); if (readSetting(EXTRAC_MAX_ADDR) != extracMaxVal) writeSetting(EXTRAC_MAX_ADDR,extracMaxVal);
break; break;
case 8: case 8:
// menu // menu
state = MAIN_MENU; state = MAIN_MENU;
stateFirstRun = 1; stateFirstRun = 1;
writeSetting(EXTRAC_THR_ADDR,pitchbThrVal); if (readSetting(EXTRAC_THR_ADDR) != extracThrVal) writeSetting(EXTRAC_THR_ADDR,extracThrVal);
writeSetting(EXTRAC_MAX_ADDR,pitchbMaxVal); if (readSetting(EXTRAC_MAX_ADDR) != extracMaxVal) writeSetting(EXTRAC_MAX_ADDR,extracMaxVal);
break; break;
} }
} }
@ -1719,7 +1719,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subBreathCC = 0; subBreathCC = 0;
writeSetting(BREATH_CC_ADDR,breathCC); if (readSetting(BREATH_CC_ADDR) != breathCC) writeSetting(BREATH_CC_ADDR,breathCC);
break; break;
case 4: case 4:
// up // up
@ -1745,7 +1745,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subBreathCC = 0; subBreathCC = 0;
writeSetting(BREATH_CC_ADDR,breathCC); if (readSetting(BREATH_CC_ADDR) != breathCC) writeSetting(BREATH_CC_ADDR,breathCC);
break; break;
} }
} }
@ -1774,7 +1774,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subBreathAT = 0; subBreathAT = 0;
writeSetting(MIDI_ADDR,MIDIchannel); if (readSetting(MIDI_ADDR) != MIDIchannel) writeSetting(MIDI_ADDR,MIDIchannel);
break; break;
case 4: case 4:
// up // up
@ -1791,7 +1791,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subBreathAT = 0; subBreathAT = 0;
writeSetting(MIDI_ADDR,MIDIchannel); if (readSetting(MIDI_ADDR) != MIDIchannel) writeSetting(MIDI_ADDR,MIDIchannel);
break; break;
} }
} }
@ -1822,7 +1822,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subVelocity = 0; subVelocity = 0;
writeSetting(VELOCITY_ADDR,velocity); if (readSetting(VELOCITY_ADDR) != velocity) writeSetting(VELOCITY_ADDR,velocity);
break; break;
case 4: case 4:
// up // up
@ -1841,7 +1841,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subVelocity = 0; subVelocity = 0;
writeSetting(VELOCITY_ADDR,velocity); if (readSetting(VELOCITY_ADDR) != velocity) writeSetting(VELOCITY_ADDR,velocity);
break; break;
} }
} }
@ -1923,7 +1923,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subPort = 0; subPort = 0;
writeSetting(PORTAM_ADDR,portamento); if (readSetting(PORTAM_ADDR) != portamento) writeSetting(PORTAM_ADDR,portamento);
break; break;
case 4: case 4:
// up // up
@ -1942,7 +1942,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subPort = 0; subPort = 0;
writeSetting(PORTAM_ADDR,portamento); if (readSetting(PORTAM_ADDR) != portamento) writeSetting(PORTAM_ADDR,portamento);
break; break;
} }
} }
@ -1973,7 +1973,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subPB = 0; subPB = 0;
writeSetting(PB_ADDR,PBdepth); if (readSetting(PB_ADDR) != PBdepth) writeSetting(PB_ADDR,PBdepth);
break; break;
case 4: case 4:
// up // up
@ -1992,7 +1992,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subPB = 0; subPB = 0;
writeSetting(PB_ADDR,PBdepth); if (readSetting(PB_ADDR) != PBdepth) writeSetting(PB_ADDR,PBdepth);
break; break;
} }
} }
@ -2023,7 +2023,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subExtra = 0; subExtra = 0;
writeSetting(EXTRA_ADDR,extraCT); if (readSetting(EXTRA_ADDR) != extraCT) writeSetting(EXTRA_ADDR,extraCT);
break; break;
case 4: case 4:
// up // up
@ -2042,7 +2042,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subExtra = 0; subExtra = 0;
writeSetting(EXTRA_ADDR,extraCT); if (readSetting(EXTRA_ADDR) != extraCT) writeSetting(EXTRA_ADDR,extraCT);
break; break;
} }
} }
@ -2073,7 +2073,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subVibrato = 0; subVibrato = 0;
writeSetting(VIBRATO_ADDR,vibrato); if (readSetting(VIBRATO_ADDR) != vibrato) writeSetting(VIBRATO_ADDR,vibrato);
break; break;
case 4: case 4:
// up // up
@ -2092,7 +2092,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subVibrato = 0; subVibrato = 0;
writeSetting(VIBRATO_ADDR,vibrato); if (readSetting(VIBRATO_ADDR) != vibrato) writeSetting(VIBRATO_ADDR,vibrato);
break; break;
} }
} }
@ -2123,7 +2123,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subDeglitch = 0; subDeglitch = 0;
writeSetting(DEGLITCH_ADDR,deglitch); if (readSetting(DEGLITCH_ADDR) != deglitch) writeSetting(DEGLITCH_ADDR,deglitch);
break; break;
case 4: case 4:
// up // up
@ -2142,7 +2142,7 @@ void menu() {
cursorNow = BLACK; cursorNow = BLACK;
display.display(); display.display();
subDeglitch = 0; subDeglitch = 0;
writeSetting(DEGLITCH_ADDR,deglitch); if (readSetting(DEGLITCH_ADDR) != deglitch) writeSetting(DEGLITCH_ADDR,deglitch);
break; break;
} }
} }