@@ -180,6 +180,7 @@ void LEDFeedbackClass::setMode(LEDFeedbackMode mode) {
180180 case LEDFeedbackMode::NONE:
181181 {
182182 _ledChangeInterval = 0 ;
183+ turnOFF ();
183184 #ifdef BOARD_HAS_LED_MATRIX
184185 ledMatrixAnimationHandler.clear ();
185186 #endif
@@ -288,14 +289,11 @@ void LEDFeedbackClass::restart() {
288289}
289290
290291void LEDFeedbackClass::update () {
291- if (stopped) {
292+ if (stopped || _mode == LEDFeedbackMode::NONE ) {
292293 return ;
293294 }
294295
295- if (_ledChangeInterval == 0 ) {
296- turnOFF ();
297- return ;
298- } else if (_ledChangeInterval == ALWAYS_ON_INTERVAL) {
296+ if (_ledChangeInterval == ALWAYS_ON_INTERVAL) {
299297 turnON ();
300298 return ;
301299 }
@@ -330,11 +328,13 @@ void LEDFeedbackClass::update() {
330328}
331329
332330void 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+ }
338338#ifdef BOARD_HAS_LED_MATRIX
339339 if (_framePtr != nullptr ){
340340 ledMatrixAnimationHandler.clear ();
@@ -345,11 +345,13 @@ void LEDFeedbackClass::turnOFF() {
345345}
346346
347347void 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+ }
353355#ifdef BOARD_HAS_LED_MATRIX
354356 if (_framePtr != nullptr ){
355357 ledMatrixAnimationHandler.loadFrame (_framePtr);
0 commit comments