Updated Drivers

This commit is contained in:
Kevin Thomas
2026-03-23 09:33:04 -04:00
parent 6ee30d0520
commit 91faba6800
31 changed files with 834 additions and 344 deletions
+14 -9
View File
@@ -34,29 +34,34 @@ static repeating_timer_t g_timer;
static bool g_timer_active = false;
static timer_driver_callback_t g_user_callback = NULL;
static bool timer_shim(repeating_timer_t *rt) {
/**
* @brief Internal repeating-timer callback that forwards to the user callback
*
* @param rt Unused repeating-timer handle provided by the SDK
* @return bool true to keep the timer running, false to cancel
*/
static bool _timer_shim(repeating_timer_t *rt) {
(void)rt;
if (g_user_callback) {
if (g_user_callback)
return g_user_callback();
}
return false;
}
void timer_driver_start(int32_t period_ms, timer_driver_callback_t callback) {
if (g_timer_active) {
cancel_repeating_timer(&g_timer);
g_timer_active = false;
}
g_user_callback = callback;
g_timer_active = add_repeating_timer_ms(period_ms, timer_shim, NULL, &g_timer);
g_timer_active = add_repeating_timer_ms(period_ms, _timer_shim, NULL, &g_timer);
}
void timer_driver_cancel(void) {
if (!g_timer_active) {
return;
}
void timer_driver_cancel(void) {
if (!g_timer_active)
return;
cancel_repeating_timer(&g_timer);
g_timer_active = false;
}