<img src="https://bbs.21ic.com/upfiles/img/20074/20074141160854.jpg"><img src="https://bbs.21ic.com/upfiles/img/20074/20074141160854.jpg"><img src="https://bbs.21ic.com/upfiles/img/20074/20074141160854.jpg"><br />先搞个协作式的HotTask51,太累了~~~<br /><br />但愿能赶上“节日”,早点给情人们穿上“皇帝的嫁衣”~~~<br /><br />也算是农民伯伯的一片心意~~~~<br /><br />真后悔自己早生20年!!!!!!!!<br /><br />苍天不公呀!!!<br /><br />俺那时为何不知有此节日???实在是雷翻了俺~~~<br /><br /><img src="https://bbs.21ic.com/upfiles/img/20074/20074141160854.jpg"><img src="https://bbs.21ic.com/upfiles/img/20074/20074141160854.jpg"><img src="https://bbs.21ic.com/upfiles/img/20074/20074141160854.jpg"><br /><br />//任务枚举参数<br />enum _HotTask_enum_<br />{<br /> HotTask_Idel = 0,//HotTask51系统空闲任务,标准用户空闲任务<br /> HotTask_User0 = 0,//特殊扩展用户看门狗任务(在bPriority[7].0中)<br /> HotTask_User1 = 1,//最低1级标准用户<br /> HotTask_User2 = 2,//2级标准用户<br /> HotTask_User3 = 3,//3级标准用户<br /> HotTask_User4 = 4,//4级标准用户<br /> HotTask_User5 = 5,//5级标准用户<br /> HotTask_User6 = 6,//最高6级标准用户<br /> HotTask_User7 = 7,//特殊扩展用户空闲任务(在bPriority[0].7中)<br /> HotTask_Init = 7,//用户任务装载即系统根任务,标准用户看门狗任务<br /> HotTask_Wdt = 7,//HotTask51特有的软件看门狗任务<br /> HotTaskMaxCount = 8//最大任务个数<br />};<br /><br /><img src="https://bbs.21ic.com/upfiles/img/20074/20074141160854.jpg"><img src="https://bbs.21ic.com/upfiles/img/20074/20074141160854.jpg"><img src="https://bbs.21ic.com/upfiles/img/20074/20074141160854.jpg"><br /><br />/*<br /> HotTask51系统接口说明<br />1. 数组bPriority[8]<br /> bPriority[0].0 系统空闲任务位 1~7位为扩展低级用户任务位<br /> bPriority[1~6].0~.7 标准用户任务可变级别位(1~6级可选)<br /> bPriority[7].7 系统看门狗和用户装载任务 0~6为扩展高级用户任务位<br /><br /> 故HotTask51拥有8+7+7=22个任务<br /><br /> 它分别用一个横向字节表示某任务,纵向某任务位得到信息<br /> 它有2个作用<br /> a.同级任务优先的循环选择<br /> 主要控制6个用户任务优先级的测试<br /> b.6个用户任务可否各自取代系统空闲任务及看门狗任务<br /> 它主要是扩展HotTask51只有6个用户任务之缺点<br />*/<br />#define interface typedef struct//HotTask51系统接口<br />interface _HotTask_Struct_<br />{<br /> volatile unsigned int iHotTaskSystemStart;//0x55aa系统上电测试变量<br />//同级任务循环扫描号<br /> volatile unsigned char iPrioTest;//用于同级循环<br />//当前任务号<br /> volatile unsigned char iTaskTick;//节拍中断断点任务序号<br />//任务指针<br /> unsigned int pPoint[HotTaskMaxCount];//系统标准定义任务函数入口<br />//任务级别 在HotTaskTick()中用于同级任务循环扫描<br /> unsigned char bPriority[HotTaskMaxCount];<br />//任务记录<br /> unsigned char bRecord[HotTaskMaxCount];<br />//任务锁<br /> unsigned char bHotTaskLock;<br />}HotTask_Struct;<br /><br /><br /><br /><img src="https://bbs.21ic.com/upfiles/img/20074/20074141160854.jpg"><img src="https://bbs.21ic.com/upfiles/img/20074/20074141160854.jpg"><img src="https://bbs.21ic.com/upfiles/img/20074/20074141160854.jpg">
|