#ifndef __YCOS_H #define __YCOS_H #include #include #define YCOSTASK_MAX 16 //YCOS轮询操作系统最多可以轮询的任务数 #define YCOSTICK_RATE_HZ (100) //YCOS时钟节拍频率,这里设置为100,周期就是1/10 = 100ms /****************************************************************************** *用户自定义数据类型 *******************************************************************************/ typedef void (*YCOSTASKFP)() ; //定义任务函数指针类型变量 typedef enum { YCOSTASK_HIGHPRIO = 1 , //YcOS高优先级任务 YCOSTASK_LOWPRIO = 2 //YcOS低优先级任务 }YcOSTaskPrio_e ; //YcOS任务优先级 typedef struct //YcOSTasks结构体,用来保存一个YcOS任务的信息 { const char *taskName ; //YcOS任务名称名称 bool enTask ; //YcOS任务使能标志位 YcOSTaskPrio_e eTaskPrio ; //YcOS任务优先级 uint32_t taskTickInterval ; //YcOS任务轮询间隔节拍数 YCOSTASKFP pFunc; //YcOS任务轮询间隔到达时,要执行的代码函数指针 }YcOSTask_s ; //YcOS任务结构体 存储任务参数信息 typedef YcOSTask_s* psYcOSTaskHandle ; //YsOS任务句柄 /****************************************************************************** *常变量定义 *******************************************************************************/ extern YcOSTask_s sYcOSTask[YCOSTASK_MAX] ; //定义YcOSTasks类型的数组,用来保存所有的YCOS任务信息 /***************************************** *对外接口函数声明 ****************************************/ extern psYcOSTaskHandle YcOSTaskCreate( const char * const pcTaskName, const YcOSTaskPrio_e eTaskPrio, const uint32_t taskTickInterval, const int taskID, const YCOSTASKFP pCallback ); //YcOS任务创建函数 extern void YcOSTaskDelete(psYcOSTaskHandle psTask) ; extern void YcOSTaskStart(psYcOSTaskHandle psTask) ; extern void YcOSTaskStop(psYcOSTaskHandle psTask) ; extern void YcOSLowPrioSchedulerCallback(void) ; //YcOS低优先级任务的轮询调度器 extern void YcOSHighPrioSchedulerCallback(void) ; //YcOS高优先级任务的轮询调度器 #endif