@@ -180,6 +180,7 @@ void LEDFeedbackClass::setMode(LEDFeedbackMode mode) {
180
180
case LEDFeedbackMode::NONE:
181
181
{
182
182
_ledChangeInterval = 0 ;
183
+ turnOFF ();
183
184
#ifdef BOARD_HAS_LED_MATRIX
184
185
ledMatrixAnimationHandler.clear ();
185
186
#endif
@@ -288,14 +289,11 @@ void LEDFeedbackClass::restart() {
288
289
}
289
290
290
291
void LEDFeedbackClass::update () {
291
- if (stopped) {
292
+ if (stopped || _mode == LEDFeedbackMode::NONE ) {
292
293
return ;
293
294
}
294
295
295
- if (_ledChangeInterval == 0 ) {
296
- turnOFF ();
297
- return ;
298
- } else if (_ledChangeInterval == ALWAYS_ON_INTERVAL) {
296
+ if (_ledChangeInterval == ALWAYS_ON_INTERVAL) {
299
297
turnON ();
300
298
return ;
301
299
}
@@ -330,11 +328,13 @@ void LEDFeedbackClass::update() {
330
328
}
331
329
332
330
void LEDFeedbackClass::turnOFF () {
333
- #ifdef BOARD_USE_NINA
334
- WiFiDrv::digitalWrite (_ledPin, LED_OFF);
335
- #else
336
- digitalWrite (_ledPin, LED_OFF);
337
- #endif
331
+ if (_ledPin != INVALID_LED_PIN) {
332
+ #ifdef BOARD_USE_NINA
333
+ WiFiDrv::digitalWrite (_ledPin, LED_OFF);
334
+ #else
335
+ digitalWrite (_ledPin, LED_OFF);
336
+ #endif
337
+ }
338
338
#ifdef BOARD_HAS_LED_MATRIX
339
339
if (_framePtr != nullptr ){
340
340
ledMatrixAnimationHandler.clear ();
@@ -345,11 +345,13 @@ void LEDFeedbackClass::turnOFF() {
345
345
}
346
346
347
347
void LEDFeedbackClass::turnON () {
348
- #ifdef BOARD_USE_NINA
349
- WiFiDrv::digitalWrite (_ledPin, LED_ON);
350
- #else
351
- digitalWrite (_ledPin, LED_ON);
352
- #endif
348
+ if (_ledPin != INVALID_LED_PIN) {
349
+ #ifdef BOARD_USE_NINA
350
+ WiFiDrv::digitalWrite (_ledPin, LED_ON);
351
+ #else
352
+ digitalWrite (_ledPin, LED_ON);
353
+ #endif
354
+ }
353
355
#ifdef BOARD_HAS_LED_MATRIX
354
356
if (_framePtr != nullptr ){
355
357
ledMatrixAnimationHandler.loadFrame (_framePtr);
0 commit comments