mirror of
https://github.com/mytechnotalent/Embedded-Hacking.git
synced 2026-05-21 23:26:52 +02:00
Updated Drivers
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user