Skip to content

Commit f20103f

Browse files
committed
LedFeedbackClass: fix led pin not initialized
1 parent 031dc54 commit f20103f

File tree

2 files changed

+20
-18
lines changed

2 files changed

+20
-18
lines changed

src/utility/LEDFeedback.cpp

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

290291
void 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

332330
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+
}
338338
#ifdef BOARD_HAS_LED_MATRIX
339339
if(_framePtr != nullptr){
340340
ledMatrixAnimationHandler.clear();
@@ -345,11 +345,13 @@ void LEDFeedbackClass::turnOFF() {
345345
}
346346

347347
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+
}
353355
#ifdef BOARD_HAS_LED_MATRIX
354356
if(_framePtr != nullptr){
355357
ledMatrixAnimationHandler.loadFrame(_framePtr);

src/utility/LEDFeedback.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#pragma once
99
#include "Arduino.h"
1010

11-
11+
#define INVALID_LED_PIN -1
1212

1313
class LEDFeedbackClass {
1414
public:
@@ -37,8 +37,8 @@ class LEDFeedbackClass {
3737
uint32_t _lastUpdate = 0;
3838
uint32_t _count = 0;
3939
bool _ledState = false;
40-
uint16_t _ledPin = 0;
40+
int _ledPin = INVALID_LED_PIN;
4141
uint32_t* _framePtr = nullptr;
42-
int32_t _ledChangeInterval = 500;
42+
int32_t _ledChangeInterval = 0;
4343
bool stopped = false;
4444
};

0 commit comments

Comments
 (0)