/**************************************************************************/ /** * \file Task_Scheduler.h * \brief Task Scheduler header file * \details * \author Zhang Xuan * \version V1.0.0 * \date 06-Sep-2018 * \par History: * V1.0.0 Initial release * \par Copyright: * (c) Heilongjiang TYW Electronics co., LTD ******************************************************************************/ #ifndef TASK_SCHEDULER_H #define TASK_SCHEDULER_H /* Includes ------------------------------------------------------------------*/ /* C binding of definitions if building with C++ compiler */ #ifdef __cplusplus extern { #endif typedef void (*TaskCbk)(void); /* #define Platform_16Bit #define Platform_32Bit */ #ifdef Platform_16Bit #define tasklib_uint8_t unsigned char #define tasklib_uint16_t unsigned int #define tasklib_uint32_t unsigned long #else #define tasklib_uint8_t unsigned char #define tasklib_uint16_t unsigned short #define tasklib_uint32_t unsigned int #define tasklib_uint64_t unsigned long long #endif typedef struct { TaskCbk Exact_Task50us; TaskCbk Exact_Task100ms; TaskCbk Pseudo_Real_TimeTask; TaskCbk Task2ms; TaskCbk Task5ms; TaskCbk Task10ms; TaskCbk Task20ms; TaskCbk Task50ms; TaskCbk Task100ms; } st_Sys_TaskGroup; /* Exported functions ------------------------------------------------------- */ extern void Sys_Init(const st_Sys_TaskGroup *TaskGroup_t); extern void Sys_Scheduling_Service(void); extern void Sys_Process_ISR(void); #ifdef __cplusplus } #endif #endif /* _Task_SCHEDULER_H_ */