You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
798 B
C
39 lines
798 B
C
#ifndef _MULTI_TIMER_H_
|
|
#define _MULTI_TIMER_H_
|
|
|
|
#include <stdint.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef uint64_t (*PlatformTicksFunction_t)(void);
|
|
|
|
typedef struct MultiTimerHandle MultiTimer;
|
|
|
|
typedef void (*MultiTimerCallback_t)(MultiTimer* timer, void* userData);
|
|
|
|
struct MultiTimerHandle {
|
|
MultiTimer* next;
|
|
uint64_t deadline;
|
|
uint32_t period;
|
|
MultiTimerCallback_t callback;
|
|
void* userData;
|
|
};
|
|
|
|
int MultiTimerInstall(PlatformTicksFunction_t ticksFunc);
|
|
|
|
int MultiTimerInit(MultiTimer* timer, uint32_t period, MultiTimerCallback_t cb, void* userData);
|
|
|
|
int MultiTimerStart(MultiTimer* timer, uint32_t startTime);
|
|
|
|
int MultiTimerStop(MultiTimer* timer);
|
|
|
|
void MultiTimerYield(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|