29 lines
682 B
C
29 lines
682 B
C
#include "easy_timer.h"
|
|
|
|
#include <stdio.h>
|
|
|
|
list_t easy_timer_list;
|
|
void (*easy_timer_sleep_func)(void) = NULL;
|
|
|
|
void easy_timer_core() {
|
|
list_node_t *node = (list_node_t *)easy_timer_list;
|
|
while (node != NULL) {
|
|
_easy_timer_t *obj = (_easy_timer_t *)node->data;
|
|
if (obj->time_start == 0) {
|
|
continue;
|
|
}
|
|
if (obj->time_wait_now < obj->time_wait_cfg) {
|
|
obj->time_wait_now += 1;
|
|
} else {
|
|
obj->time_wait_now = 0;
|
|
obj->timer_handler();
|
|
if (obj->time_out == 1) {
|
|
obj->time_start = 0;
|
|
}
|
|
}
|
|
node = node->next;
|
|
}
|
|
if (easy_timer_sleep_func != NULL) {
|
|
easy_timer_sleep_func();
|
|
}
|
|
} |