@@ -63,10 +63,8 @@ SDFSConfig fileSystemConfig = SDFSConfig();
63
63
64
64
// Indicate which digital I/Os should be displayed on the chart.
65
65
// From GPIO16 to GPIO0, a '1' means the corresponding GPIO will be shown
66
- // Note: SD GPIOs are hidden by default:
67
- #define DEFAULT_GPIO_MASK 0b11111000000111111
68
-
69
- unsigned int gpioMask = DEFAULT_GPIO_MASK;
66
+ // e.g. 0b11111000000111111
67
+ unsigned int gpioMask;
70
68
71
69
const char * ssid = STASSID;
72
70
const char * password = STAPSK;
@@ -254,6 +252,17 @@ void setup(void) {
254
252
255
253
}
256
254
255
+ // Return default GPIO mask, that is all I/Os except SD card ones
256
+ unsigned int defaultMask () {
257
+ unsigned int mask = 0b11111111111111111 ;
258
+ for (auto pin=0 ; pin <= 16 ; pin++) {
259
+ if (isFlashInterfacePin (pin)) {
260
+ mask &= ~(1 <<pin);
261
+ }
262
+ }
263
+ return mask;
264
+ }
265
+
257
266
int rgbMode = 1 ; // 0=off - 1=auto - 2=manual
258
267
int rgbValue = 0 ;
259
268
long lastChangeTime = 0 ;
@@ -285,34 +294,41 @@ void loop(void) {
285
294
// act according to mode
286
295
switch (rgbMode) {
287
296
case 0 : // off
288
- gpioMask = 0b10100000000111111 ; // GPIOs 12-13-15 are hidden
289
- // output 0
297
+ gpioMask = defaultMask ();
298
+ gpioMask &= ~(1 <<12 ); // Hide GPIO 12
299
+ gpioMask &= ~(1 <<13 ); // Hide GPIO 13
300
+ gpioMask &= ~(1 <<15 ); // Hide GPIO 15
301
+
302
+ // reset outputs
290
303
digitalWrite (12 , 0 );
291
304
digitalWrite (13 , 0 );
292
305
digitalWrite (15 , 0 );
293
306
break ;
294
307
295
308
case 1 : // auto
296
- gpioMask = DEFAULT_GPIO_MASK;
309
+ gpioMask = defaultMask ();
310
+
297
311
// increment value (reset after 7)
298
312
rgbValue++;
299
313
if (rgbValue > 7 ) {
300
314
rgbValue = 0 ;
301
315
}
302
316
303
- // output values
317
+ // output new values
304
318
digitalWrite (12 , rgbValue & 0b001 );
305
319
digitalWrite (13 , rgbValue & 0b010 );
306
320
digitalWrite (15 , rgbValue & 0b100 );
307
321
break ;
308
322
309
323
case 2 : // manual
310
- gpioMask = DEFAULT_GPIO_MASK;
311
- // don't change values
324
+ gpioMask = defaultMask ();
325
+
326
+ // keep outputs unchanged
312
327
break ;
313
328
}
314
329
315
330
// update last change time
316
331
lastChangeTime = now;
317
332
}
318
333
}
334
+
0 commit comments