summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJan200101 <sentrycraft123@gmail.com>2025-08-03 16:02:05 +0200
committerJan200101 <sentrycraft123@gmail.com>2025-08-03 16:02:05 +0200
commitb2d6fc09e228626e1e43ff42e6910bb7eec5954a (patch)
tree97abc2129f2ec10170d5aca5a9b9fbeb7dda5579 /src
parent908e46ee4905c14766aff39f9ddb693e3b0d5207 (diff)
downloadpico-relay-b2d6fc09e228626e1e43ff42e6910bb7eec5954a.tar.gz
pico-relay-b2d6fc09e228626e1e43ff42e6910bb7eec5954a.zip
rework sleeping logic so that status isn't requested often
Diffstat (limited to 'src')
-rw-r--r--src/main.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/main.c b/src/main.c
index 1d3109f..8a5bc64 100644
--- a/src/main.c
+++ b/src/main.c
@@ -23,8 +23,8 @@ static int no_response_counter = 0;
static err_t error;
absolute_time_t wifi_connected_time;
-// 2 minutes
-#define SLEEP_TIME (5 * 1000)
+#define SHORT_SLEEP_TIME (5*1000) // 5 secs, needs to be under 8 for watchdog
+#define SLEEP_TIME (5*60*1000) // 5 mins
#define LEVEL_START 95.0
#define LEVEL_END 85.0
@@ -177,9 +177,16 @@ int main()
last_state = state;
}
- watchdog_update();
- LogInfo("sleeping...");
- sleep_ms(SLEEP_TIME);
+ absolute_time_t until = make_timeout_time_ms(SLEEP_TIME);
+ while (true)
+ {
+ LogInfo("sleeping...");
+ watchdog_update();
+ if (time_reached(until))
+ break;
+
+ sleep_ms(SHORT_SLEEP_TIME);
+ }
set_led(!get_led());
busy_wait_ms(100);
@@ -194,6 +201,6 @@ int main()
// toggle the light on and off to signify something went wrong
while (true) {
set_led(!get_led());
- busy_wait_ms(1000);
+ busy_wait_ms(750);
}
}