网易首页 > 网易号 > 正文 申请入驻

单片机裸机代码框架设计思路(三)

0
分享至

前两篇文档我一共讲述了3个裸机框架:(1)轮询系统;(2)前后台系统;(3)基于时间片的多任务系统;

今天再谈一谈单链表组成的裸机系统。此写法更加灵活,和时间片的概念类似,

(4)基于单链表的多任务系统

此代码写法分为7步

【1】定义一个表示的任务的结构体类型

timeout表示超时时间,与定时器心跳比较,如果时间到,就执行*pTask指向的函数体

repeat用来周期设置,一般设置成timerout一样,如果设置为0,该任务只是执行一次

*pTask指向该任务要执行的函数体(一般也称为回调函数)

Task_t* next指向链表中的下一个任务节点

//定义一个表示的任务的结构体类型typedef struct Task_t{ unsigned int timeout; // 超时时间(用来与定时器心跳比较) unsigned int repeat;// 循环定时触发时间(周期定时设置),为0时代表单次定时 void (*pTask)(void); //任务的函数指针 struct Task_t* next;// 指向下一个定时器任务节点}Task_t;

【2】定义变量,包含task任务结构体和链表头以及心跳全局变量

//任务结构体变量Task_t task1;Task_t task2;Task_t task3;//表头struct Task_t* g_head_handle=NULL;//心跳计数器unsigned int g_task_ticks=0;

【3】心跳函数将心跳全局变量自加

void Task_Ticks(){ g_task_ticks++;}

【4】任务初始化

void Task_Init(Task_t* hTask, void(*pTask)(), unsigned int timeout, unsigned int repeat){hTask->timeout = g_task_ticks + timeout;hTask->repeat = repeat;hTask->pTask = pTask;}

【5】任务启动和停止函数

//链表中插入任务char Task_Start(Task_t* hTask){struct Task_t* target = g_head_handle;//检查链表中是否已经有该任务while(target) {if(target == hTask) return -1;//already exist.target = target->next;}//链表头部插入任务hTask->next = g_head_handle;g_head_handle = hTask;return 0;}//移除链表中的任务,相当于停止该任务void Task_Stop(Task_t* hTask){struct Task_t** curr;for(curr = &g_head_handle; *curr; ) {struct Task_t* entry = *curr;if (entry == hTask) {*curr = entry->next;} elsecurr = &entry->next;}}

【6】任务循环

//任务循环void Task_Process() { struct Task_t* target;for(target=g_head_handle; target; target=target->next) {if(g_task_ticks >= target->timeout) {if(target->repeat == 0) {Task_Stop(target);} else {target->timeout = g_task_ticks + target->repeat;}target->pTask();

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
欧冠-拜仁2-2皇马伯纳乌再战 金玟哉漏人致丢球+送点维尼修斯双响

欧冠-拜仁2-2皇马伯纳乌再战 金玟哉漏人致丢球+送点维尼修斯双响

直播吧
2024-05-01 05:00:30
内蒙古一服务站“天价切糕”卖12000元,商家:按克卖

内蒙古一服务站“天价切糕”卖12000元,商家:按克卖

鲁中晨报
2024-04-30 22:01:04
联合国对美高压驱散抗议活动表示关切,古特雷斯:校方应有智慧妥处

联合国对美高压驱散抗议活动表示关切,古特雷斯:校方应有智慧妥处

澎湃新闻
2024-05-01 11:04:30
广东台主持人毛琳公开批评“粤语正音老师”,广东网友集体点赞

广东台主持人毛琳公开批评“粤语正音老师”,广东网友集体点赞

粤一箫
2024-04-30 23:59:06
“李四强抢劫案”的无罪判决,解开了哥哥8年来的疑惑 | 深度聚焦

“李四强抢劫案”的无罪判决,解开了哥哥8年来的疑惑 | 深度聚焦

北青深一度
2024-04-30 08:08:55
拉法行动正式开始,平民开始撤离,以色列不等待,哈马斯彻底懵了

拉法行动正式开始,平民开始撤离,以色列不等待,哈马斯彻底懵了

山河路口
2024-04-30 20:27:35
重庆榜一大哥与女主播大打出手!刷30万礼物被甩,男子真容遭曝光

重庆榜一大哥与女主播大打出手!刷30万礼物被甩,男子真容遭曝光

洛洛女巫
2024-04-30 16:05:52
米切尔28+6骑士赢下天王山!3-2领先魔术,班凯罗空砍39+8

米切尔28+6骑士赢下天王山!3-2领先魔术,班凯罗空砍39+8

湖人崛起
2024-05-01 10:38:35
慌了?华为版“微信”45亿次下载!微信:将适配“纯血鸿蒙”!

慌了?华为版“微信”45亿次下载!微信:将适配“纯血鸿蒙”!

黑马公社
2024-04-30 11:55:07
本周重大事件:布林肯访华,特斯拉“解禁”,问界M7追尾起火3人死亡

本周重大事件:布林肯访华,特斯拉“解禁”,问界M7追尾起火3人死亡

一周财经观察
2024-04-30 19:57:19
“问界M7事件”大结局:官媒求删文,受害人家属在反口!

“问界M7事件”大结局:官媒求删文,受害人家属在反口!

兵叔评说
2024-04-30 16:06:39
越闹越大!美女在西安汉服馆被骂哭,西安文旅评论关闭,网友愤怒

越闹越大!美女在西安汉服馆被骂哭,西安文旅评论关闭,网友愤怒

天天热点见闻
2024-04-30 16:29:44
李书福,“梦醒”了

李书福,“梦醒”了

虎嗅APP
2024-05-01 07:51:30
美国人开始认识到“阶级矛盾”了

美国人开始认识到“阶级矛盾”了

平原公子
2024-04-30 11:23:26
对决时刻到来,美国动真格,宣布将制裁中方银行,军事部署也到位

对决时刻到来,美国动真格,宣布将制裁中方银行,军事部署也到位

深蓝航迹
2024-04-28 15:07:49
灾难!韩国中卫成卧底连送皇马2球:防守失位+送点,获拜仁最低分

灾难!韩国中卫成卧底连送皇马2球:防守失位+送点,获拜仁最低分

我爱英超
2024-05-01 05:02:10
西方突然发现不对劲:中国加紧增加战略储备,是在做最坏打算?

西方突然发现不对劲:中国加紧增加战略储备,是在做最坏打算?

三分亮剑
2024-04-30 19:16:04
4月30日俄乌:美援武器起作用,俄军窗口期正过去,损失多日破千

4月30日俄乌:美援武器起作用,俄军窗口期正过去,损失多日破千

山河路口
2024-04-30 16:32:28
他出身黑道,曾是高官的司机和白手套,迎娶小燕子,后花十年洗白

他出身黑道,曾是高官的司机和白手套,迎娶小燕子,后花十年洗白

阿胡
2024-04-29 11:49:43
卡佩罗:金玟哉在比赛中遇到了很多麻烦,今后他很难再为拜仁参赛

卡佩罗:金玟哉在比赛中遇到了很多麻烦,今后他很难再为拜仁参赛

直播吧
2024-05-01 07:07:22
2024-05-01 11:28:49
流年点评互联网
流年点评互联网
事了拂衣去,深藏功与名
209文章数 110028关注度
往期回顾 全部

科技要闻

余承东卸任华为终端CEO 新任命为董事长

头条要闻

华为高颜值HR自称不是被劝退:职业规划和公司政策不符

头条要闻

华为高颜值HR自称不是被劝退:职业规划和公司政策不符

体育要闻

穆雷,绝杀了一个时代

娱乐要闻

黄子韬被曝求婚徐艺洋 大量亲密照曝光

财经要闻

俞敏洪,踏足A股!

汽车要闻

预售2.89-3.49万 奔腾小马正式开启预售

态度原创

亲子
艺术
旅游
房产
游戏

亲子要闻

属于宝宝的夏天来了,又是被萌娃治愈的一天

艺术要闻

用耳朵看展览?西岸美术馆最新特展关注声音艺术

旅游要闻

假期出游“口味”改改?小城这样宠你!

房产要闻

单价2万内,装标4200+,主城改善大盘无套路硬刚!

《我的世界》迎来15周年:官方将在游戏中增加新画作

无障碍浏览 进入关怀版