TimeScheduleSystem.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef TIMESCHEDULESYSTEM_H
  2. #define TIMESCHEDULESYSTEM_H
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #include <string.h>
  7. typedef struct TimeScheduleSystem{
  8. unsigned int ticks;
  9. unsigned int targetTicks;
  10. unsigned char result : 1; // 0:等待中 1:可执行
  11. unsigned char state : 1; // 0:不在工作链表 1:在工作链表
  12. unsigned char skip : 1; // 0:不跳过调度 1:跳过调度
  13. void (* callback)(void);
  14. struct TimeScheduleSystem *next;
  15. } TSS_t;
  16. unsigned char TSS_init(TSS_t *TSS, unsigned int targetTicks, void (* callback)(void));
  17. void TSS_while(void);
  18. void TSS_timer(void);
  19. unsigned char TSS_pending(TSS_t *TSS);
  20. unsigned char TSS_start(TSS_t *TSS);
  21. void TSS_setTicks(TSS_t *TSS, unsigned char ticks);
  22. unsigned int TSS_getTicks(TSS_t *TSS);
  23. void TSS_setTargetTicks(TSS_t *TSS, unsigned char targetTicks);
  24. unsigned int TSS_TargetTicks(TSS_t *TSS);
  25. void TSS_setResult(TSS_t *TSS, unsigned char result);
  26. unsigned char TSS_getResult(TSS_t *TSS);
  27. void TSS_setState(TSS_t *TSS, unsigned char state);
  28. unsigned char TSS_getState(TSS_t *TSS);
  29. void TSS_setSkip(TSS_t *TSS, unsigned char skip);
  30. unsigned char TSS_getSkip(TSS_t *TSS);
  31. #ifdef __cplusplus
  32. }
  33. #endif
  34. #endif // TIMESCHEDULESYSTEM_H