#ifndef TIMESCHEDULESYSTEM_H #define TIMESCHEDULESYSTEM_H #ifdef __cplusplus extern "C" { #endif #include typedef struct TimeScheduleSystem{ unsigned int ticks; unsigned int targetTicks; unsigned char result : 1; // 0:等待中 1:可执行 unsigned char state : 1; // 0:不在工作链表 1:在工作链表 unsigned char skip : 1; // 0:不跳过调度 1:跳过调度 void (* callback)(void); struct TimeScheduleSystem *next; } TSS_t; unsigned char TSS_init(TSS_t *TSS, unsigned int targetTicks, void (* callback)(void)); void TSS_while(void); void TSS_timer(void); unsigned char TSS_pending(TSS_t *TSS); unsigned char TSS_start(TSS_t *TSS); void TSS_setTicks(TSS_t *TSS, unsigned char ticks); unsigned int TSS_getTicks(TSS_t *TSS); void TSS_setTargetTicks(TSS_t *TSS, unsigned char targetTicks); unsigned int TSS_TargetTicks(TSS_t *TSS); void TSS_setResult(TSS_t *TSS, unsigned char result); unsigned char TSS_getResult(TSS_t *TSS); void TSS_setState(TSS_t *TSS, unsigned char state); unsigned char TSS_getState(TSS_t *TSS); void TSS_setSkip(TSS_t *TSS, unsigned char skip); unsigned char TSS_getSkip(TSS_t *TSS); #ifdef __cplusplus } #endif #endif // TIMESCHEDULESYSTEM_H