aboutsummaryrefslogtreecommitdiffstats
path: root/usr/space_light/src
diff options
context:
space:
mode:
authorBernhard Guillon <Bernhard.Guillon@begu.org>2025-01-01 19:15:13 +0100
committerBernhard Guillon <Bernhard.Guillon@begu.org>2025-01-01 19:15:13 +0100
commit2a77444b4cc48870554cdd20cd95ef13d1654e2a (patch)
tree9b130775d039805f0e4f5d0a100c21d44759249b /usr/space_light/src
parentf70b052b789dbac68651591031aabc0b372db8ec (diff)
downloadwb3s-ble-nebula-galaxy-2a77444b4cc48870554cdd20cd95ef13d1654e2a.tar.gz
wb3s-ble-nebula-galaxy-2a77444b4cc48870554cdd20cd95ef13d1654e2a.zip
space_light: update timer
Diffstat (limited to 'usr/space_light/src')
-rw-r--r--usr/space_light/src/space_light.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/usr/space_light/src/space_light.c b/usr/space_light/src/space_light.c
index eb82c5a..807d9d0 100644
--- a/usr/space_light/src/space_light.c
+++ b/usr/space_light/src/space_light.c
@@ -41,7 +41,7 @@
#define GREEN BK_PWM_4
#define BLUE BK_PWM_5
-TimerHandle_t xOneShotTimer;
+TimerHandle_t xOneShotTimer = NULL;
void power_save_mode() {
// Turn your lights down low
@@ -198,9 +198,18 @@ void set_rgbcw(struct RGBCW *rgbcw) {
static void oneShotTimerCallback(TimerHandle_t xTimer) { power_save_mode(); }
void set_timer(uint16_t seconds) {
- // TODO: reset or disable timer!
- xOneShotTimer =
- xTimerCreate("OneShot", seconds * 1000, pdFALSE, 0, oneShotTimerCallback);
+ // FIXME: restructure the code
+ if (xOneShotTimer == NULL && seconds == 0) {
+ return;
+ }
+ if (seconds == 0) {
+ xTimerStop(xOneShotTimer, 0);
+ }
+
+ if (xOneShotTimer == NULL) {
+ xOneShotTimer = xTimerCreate("OneShot", seconds * 1000, pdFALSE, 0,
+ oneShotTimerCallback);
+ }
if ((xOneShotTimer != NULL)) {
xTimerStart(xOneShotTimer, 0);
}