@@ -252,25 +252,24 @@ void setup() {
252
252
pinMode (PIN_BUTTON, INPUT);
253
253
attachInterrupt (0 , pushInterrupt, FALLING);
254
254
255
- if (EEPROM.read (ADDR_SLEEPING)) {
256
- while (!eeprom_is_ready ());
257
- EEPROM.update (ADDR_SLEEPING, 0 );
255
+ if (EEPROMread (ADDR_SLEEPING)) {
256
+ EEPROMupdate (ADDR_SLEEPING, 0 );
258
257
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_ON);
259
258
button_state = new_state = S_SLEEP_WAKE;
260
259
}
261
260
detachInterrupt (0 );
262
261
263
- if (EEPROM_VERSION != EEPROM. read (ADDR_VERSION)) {
262
+ if (EEPROM_VERSION != EEPROMread (ADDR_VERSION)) {
264
263
resetMemory ();
265
- EEPROM. update (ADDR_VERSION, EEPROM_VERSION);
264
+ EEPROMupdate (ADDR_VERSION, EEPROM_VERSION);
266
265
} else {
267
266
loadModes ();
268
267
loadBundles ();
269
268
loadPalette (ADDR_PALETTE);
270
269
}
271
270
272
271
Serial.begin (57600 );
273
- cur_bundle = EEPROM. read (ADDR_CUR_BUNDLE);
272
+ cur_bundle = EEPROMread (ADDR_CUR_BUNDLE);
274
273
275
274
pinMode (PIN_R, OUTPUT);
276
275
pinMode (PIN_G, OUTPUT);
@@ -472,8 +471,7 @@ void handlePress(bool pressed) {
472
471
flash (128 , 128 , 128 , 5 );
473
472
new_state = S_PLAY_SLEEP_WAIT;
474
473
} else if (!pressed) {
475
- while (!eeprom_is_ready ());
476
- EEPROM.update (ADDR_LOCKED, 1 );
474
+ EEPROMupdate (ADDR_LOCKED, 1 );
477
475
enterSleep ();
478
476
}
479
477
break ;
@@ -650,8 +648,7 @@ void handlePress(bool pressed) {
650
648
new_state = S_BUNDLE_EDIT_WAIT;
651
649
} else if (!pressed) {
652
650
flash (128 , 128 , 128 , 5 );
653
- while (!eeprom_is_ready ());
654
- EEPROM.update (ADDR_CUR_BUNDLE, cur_bundle);
651
+ EEPROMupdate (ADDR_CUR_BUNDLE, cur_bundle);
655
652
new_state = S_PLAY_OFF;
656
653
}
657
654
break ;
@@ -709,12 +706,11 @@ void handlePress(bool pressed) {
709
706
710
707
// On Wake
711
708
case S_SLEEP_WAKE:
712
- if (EEPROM. read (ADDR_LOCKED)) {
709
+ if (EEPROMread (ADDR_LOCKED)) {
713
710
if (since_trans == VERY_LONG_HOLD) flash (0 , 128 , 0 , 5 );
714
711
if (!pressed) {
715
712
if (since_trans > VERY_LONG_HOLD) {
716
- while (!eeprom_is_ready ());
717
- EEPROM.update (ADDR_LOCKED, 0 );
713
+ EEPROMupdate (ADDR_LOCKED, 0 );
718
714
new_state = S_PLAY_OFF;
719
715
} else {
720
716
enterSleep ();
@@ -785,7 +781,6 @@ void handlePress(bool pressed) {
785
781
flash (128 , 128 , 128 , 1 );
786
782
flash (0 , 128 , 0 , 1 );
787
783
flash (128 , 128 , 128 , 1 );
788
- while (!eeprom_is_ready ());
789
784
saveMode (cur_mode_idx);
790
785
new_state = S_PLAY_OFF;
791
786
break ;
@@ -796,7 +791,6 @@ void handlePress(bool pressed) {
796
791
flash (128 , 128 , 128 , 1 );
797
792
flash (0 , 0 , 128 , 1 );
798
793
flash (128 , 128 , 128 , 1 );
799
- while (!eeprom_is_ready ());
800
794
saveBundles ();
801
795
new_state = S_PLAY_OFF;
802
796
break ;
@@ -829,8 +823,7 @@ void handlePress(bool pressed) {
829
823
void enterSleep () {
830
824
writeFrame (0 , 0 , 0 );
831
825
accelStandby ();
832
- while (!eeprom_is_ready ());
833
- EEPROM.update (ADDR_SLEEPING, 1 );
826
+ EEPROMupdate (ADDR_SLEEPING, 1 );
834
827
digitalWrite (PIN_LDO, LOW);
835
828
delay (64000 );
836
829
}
@@ -840,7 +833,7 @@ void pushInterrupt() {}
840
833
841
834
void clearMemory () {
842
835
for (int i = 0 ; i < 1024 ; i++) {
843
- EEPROM. update (i, 0 );
836
+ EEPROMupdate (i, 0 );
844
837
}
845
838
}
846
839
@@ -863,7 +856,7 @@ void initBundles() {
863
856
864
857
void saveMode (uint8_t idx) {
865
858
for (uint8_t b = 0 ; b < MODE_SIZE; b++) {
866
- EEPROM. update (ADDR_MODES + (idx * 40 ) + b, pmodes[idx].d [b]);
859
+ EEPROMupdate (ADDR_MODES + (idx * 40 ) + b, pmodes[idx].d [b]);
867
860
}
868
861
}
869
862
@@ -873,16 +866,16 @@ void saveModes() {
873
866
874
867
void saveBundles () {
875
868
for (uint8_t b = 0 ; b < NUM_BUNDLES; b++) {
876
- EEPROM. update (ADDR_BUNDLES + (b * 20 ), bundle_slots[b]);
869
+ EEPROMupdate (ADDR_BUNDLES + (b * 20 ), bundle_slots[b]);
877
870
for (uint8_t s = 0 ; s < NUM_MODES; s++) {
878
- EEPROM. update (ADDR_BUNDLES + (b * 20 ) + s + 1 , bundles[b][s]);
871
+ EEPROMupdate (ADDR_BUNDLES + (b * 20 ) + s + 1 , bundles[b][s]);
879
872
}
880
873
}
881
874
}
882
875
883
876
void loadMode (uint8_t idx) {
884
877
for (uint8_t b = 0 ; b < MODE_SIZE; b++) {
885
- pmodes[idx].d [b] = EEPROM. read (ADDR_MODES + (idx * 40 ) + b);
878
+ pmodes[idx].d [b] = EEPROMread (ADDR_MODES + (idx * 40 ) + b);
886
879
}
887
880
}
888
881
@@ -892,15 +885,14 @@ void loadModes() {
892
885
893
886
void loadBundles () {
894
887
for (uint8_t b = 0 ; b < NUM_BUNDLES; b++) {
895
- bundle_slots[b] = EEPROM. read (ADDR_BUNDLES + (b * 20 ));
888
+ bundle_slots[b] = EEPROMread (ADDR_BUNDLES + (b * 20 ));
896
889
for (uint8_t s = 0 ; s < NUM_MODES; s++) {
897
- bundles[b][s] = EEPROM. read (ADDR_BUNDLES + (b * 20 ) + s + 1 );
890
+ bundles[b][s] = EEPROMread (ADDR_BUNDLES + (b * 20 ) + s + 1 );
898
891
}
899
892
}
900
893
}
901
894
902
895
void resetMemory () {
903
- while (!eeprom_is_ready ());
904
896
clearMemory ();
905
897
initModes ();
906
898
saveModes ();
@@ -1267,3 +1259,13 @@ void detectAccelModel() {
1267
1259
thresh_target = 8 ;
1268
1260
}
1269
1261
}
1262
+
1263
+ void EEPROMupdate (uint16_t addr, uint8_t val) {
1264
+ while (!eeprom_is_ready ());
1265
+ EEPROM.update (addr, val);
1266
+ }
1267
+
1268
+ uint8_t EEPROMread (uint16_t addr) {
1269
+ while (!eeprom_is_ready ());
1270
+ return EEPROM.read (addr);
1271
+ }
0 commit comments