单片机程序架构之时间片轮询法

嵌入式ARM 2019-03-13 18:14


时间片轮询法,在很多书籍中有提到,而且有很多时候都是与操作系统一起出现,也就是说很多时候是操作系统中使用了这一方法。不过我们这里要说的这个时间片轮询法并不是挂在操作系统下,而是在前后台程序中使用此法。也是本贴要详细说明和介绍的方法。


对于时间片轮询法,虽然有不少书籍都有介绍,但大多说得并不系统,只是提提概念而已。下面本人将详细介绍本人模式,并参考别人的代码建立的一个时间片轮询架构程序的方法,我想将给初学者有一定的借鉴性。

 

使用1个定时器,可以是任意的定时器,这里不做特殊说明,下面假设有3个任务,那么我们应该做如下工作:


1. 初始化定时器,这里假设定时器的定时中断为1ms(当然你可以改成10ms,这个和操作系统一样,中断过于频繁效率就低,中断太长,实时性差)。

 

2. 定义一个数值:



3. 在定时器中断服务函数中添加:



代码解释:定时中断服务函数,在中断中逐个判断,如果定时值为0了,表示没有使用此定时器或此定时器已经完成定时,不着处理。否则定时器减一,知道为零时,相应标志位值1,表示此任务的定时值到了。

 

4. 在我们的应用程序中,在需要的应用定时的地方添加如下代码,下面就以任务1为例:




到此我们只需要在任务中判断TaskMark[0] 是否为0x01即可。其他任务添加相同,至此一个定时器的复用问题就实现了。用需要的朋友可以试试,效果不错哦。


通过上面对1个定时器的复用我们可以看出,在等待一个定时的到来的同时我们可以循环判断标志位,同时也可以去执行其他函数。


循环判断标志位:


那么我们可以想想,如果循环判断标志位,是不是就和上面介绍的顺序执行程序是一样的呢?一个大循环,只是这个延时比普通的for循环精确一些,可以实现精确延时。


执行其他函数:


那么如果我们在一个函数延时的时候去执行其他函数,充分利用CPU时间,是不是和操作系统有些类似了呢?但是操作系统的任务管理和切换是非常复杂的。下面我们就将利用此方法架构一直新的应用程序。


时间片轮询法的架构:


  1. 设计一个结构体:




这个结构体的设计非常重要,一个用4个参数,注释说的非常详细,这里不在描述。

 

2. 任务运行标志出来,此函数就相当于中断服务函数,需要在定时器的中断服务函数中调用此函数,这里独立出来,并于移植和理解。



 

大家认真对比一下次函数,和上面定时复用的函数是不是一样的呢?

 

3. 任务处理

 


此函数就是判断什么时候该执行那一个任务了,实现任务的管理操作,应用者只需要在main()函数中调用此函数就可以了,并不需要去分别调用和处理任务函数。


到此,一个时间片轮询应用程序的架构就建好了,大家看看是不是非常简单呢?此架构只需要两个函数,一个结构体,为了应用方面下面将再建立一个枚举型变量。


下面我就就说说怎样应用吧,假设我们有三个任务:时钟显示,按键扫描,和工作状态显示。

 

  1. 定义一个上面定义的那种结构体变量 



在定义变量时,我们已经初始化了值,这些值的初始化,非常重要,跟具体的执行时间优先级等都有关系,这个需要自己掌握。

 

①大概意思是,我们有三个任务,没1s执行以下时钟显示,因为我们的时钟最小单位是1s,所以在秒变化后才显示一次就够了。


②由于按键在按下时会参数抖动,而我们知道一般按键的抖动大概是20ms,那么我们在顺序执行的函数中一般是延伸20ms,而这里我们每20ms扫描一次,是非常不错的出来,即达到了消抖的目的,也不会漏掉按键输入。


③为了能够显示按键后的其他提示和工作界面,我们这里设计每30ms显示一次,如果你觉得反应慢了,你可以让这些值小一点。后面的名称是对应的函数名,你必须在应用程序中编写这函数名称和这三个一样的任务。

 

2. 任务列表




好好看看,我们这里定义这个任务清单的目的其实就是参数TASKS_MAX的值,其他值是没有具体的意义的,只是为了清晰的表面任务的关系而已。

 

3. 编写任务函数




现在你就可以根据自己的需要编写任务了。

 

4. 主函数

 

到此我们的时间片轮询这个应用程序的架构就完成了,你只需要在我们提示的地方添加你自己的任务函数就可以了。


是不是很简单啊,有没有点操作系统的感觉在里面?

嵌入式ARM 关注这个时代最火的嵌入式ARM,你想知道的都在这里。
评论 (0)
  • 瑞芯微电子(Rockchip)是国内领先的AIoT SoC设计制造企业,专注于智能应用处理器及周边配套芯片的研发。飞凌嵌入式作为瑞芯微的战略合作伙伴,已基于瑞芯微RK3399、RK3568、RK3588、RK3576、RK3562和RK3506系列处理器推出了多款嵌入式主控产品,包括核心板、开发板和工控机,这些产品已成功帮助数千家企业客户完成了项目的快速开发和落地。本文将系统地梳理飞凌嵌入式RK平台主控产品在开发过程中常用的命令,助力更多开发者快速掌握RK系列芯片的开发方法。01、查看CPU温度
    飞凌嵌入式 2025-04-16 15:50 153浏览
  • 二、芯片的设计1、芯片设计的基本流程 (1)需求定义: 明确芯片功能(如处理器、存储、通信)、性能指标(速度、功耗、面积)及目标应用场景(消费电子、汽车、工业)。 (2)架构设计: 确定芯片整体框架,包括核心模块(如CPU、GPU、存储单元)的协同方式和数据流路径。 (3)逻辑设计: 通过硬件描述语言(如Verilog、VHDL)将架构转化为电路逻辑,生成RTL(寄存器传输级)代码。 (4)物理设计: 将逻辑代码映射到物理布局,涉及布局布线、时序优化、功耗分析等,需借助EDA工具(如Ca
    碧海长空 2025-04-15 11:30 227浏览
  • 一、芯片的发展历程总结:1、晶体管的诞生(1)电子管时代 20世纪40年代,电子管体积庞大、功耗高、可靠性差,无法满足计算机小型化需求。(2)晶体管时代 1947年,贝尔实验室的肖克利、巴丁和布拉顿发明点接触晶体管,实现电子信号放大与开关功能,标志着固态电子时代的开端。 1956年,肖克利发明晶体管。(3)硅基晶体管时代 早期晶体管采用锗材料,但硅更耐高温、成本低,成为主流材料。2、集成电路的诞生与发展 1958年,德州仪器工程师基尔比用锗材料制成世界上第一块含多个晶体管的集成电路,同年仙童半导
    碧海长空 2025-04-15 09:30 198浏览
  • 三、芯片的制造1、制造核心流程 (1)晶圆制备:以高纯度硅为基底,通过拉晶、切片、抛光制成晶圆。 (2)光刻:光刻、离子注入、薄膜沉积、化学机械抛光。 (3)刻蚀与沉积:使用干法刻蚀(等离子体)精准切割图形,避免侧壁损伤。 (4)掺杂:注入离子形成PN结特性,实现晶体管开关功能。2、材料与工艺创新 (1)新材料应用: 高迁移率材料(FinFET中的应变硅、GaN在射频芯片中的应用); 新型封装技术(3D IC、TSV硅通孔)提升集成度。 (2)工艺创新: 制程从7nm到3nm,设计架构由F
    碧海长空 2025-04-15 11:33 279浏览
  • 一、引言:健康管理数字化浪潮下的血压监测转型在慢性病高发与老龄化加剧的双重压力下,家庭健康监测设备正从“被动测量工具”向“主动健康管家”演进。传统血压计虽能提供基础数值,却无法解决用户的核心痛点:数据如何解读?异常如何干预?风险如何预防?WT2605C芯片方案的诞生,通过“AI对话+云端互联+个性化服务”三重技术突破,重新定义了血压计的价值边界——它不仅是一台测量仪器,更是一个全天候在线的健康管理生态系统。二、传统血压计的局限与用户需求升级1. 功能单一性困境数据孤岛:仅显示收缩压/舒张压数值,
    广州唯创电子 2025-04-16 08:55 139浏览
  •   网络链路攻防战术对抗仿真系统软件深度剖析   一、系统概览   北京华盛恒辉网络链路攻防战术对抗仿真系统软件,是专为网络安全领域攻防对抗需求打造的高仿真平台。它模拟真实网络环境中的攻、防行为,为安全研究人员以及红队、蓝队提供实战训练和策略验证工具。该系统以动态仿真技术为核心,融合人工智能与大数据分析,实现攻防战术的自动推演与可视化展示 。   应用案例   目前,已有多个网络链路攻防战术对抗仿真系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润网络链路攻防战术对抗仿
    华盛恒辉l58ll334744 2025-04-16 14:42 83浏览
  •   水下装备体系论证系统软件全面解析   一、系统概述   水下装备体系论证系统软件是针对水下作战、资源勘探、海洋工程等需求,专门设计的信息化论证工具。该系统通过集成建模、仿真、优化等技术,对水下装备体系的使命任务、环境适应性、技术参数、作战效能等进行全流程分析,为装备体系设计、方案权衡和决策提供科学依据。   应用案例   目前,已有多个水下装备体系论证系统在实际应用中取得了显著成效。例如,北京华盛恒辉和北京五木恒润水下装备体系论证系统。这些成功案例为水下装备体系论证系统的推广和应用提
    华盛恒辉l58ll334744 2025-04-16 17:03 122浏览
  • 四、芯片封测技术及应用场景1、封装技术的发展历程 (1)DIP封装:早期分立元件封装,体积大、引脚少; (2)QFP封装:引脚密度提升,适用于早期集成电路。 (3)BGA封装:高密度互连,散热与信号传输优化; (4)3D封装:通过TSV(硅通孔)实现垂直堆叠,提升集成度(如HBM内存堆叠); (5)Chiplet封装:异质集成,将不同工艺节点的模块组合(如AMD的Zen3+架构)。 (6)SiP封装:集成多种功能芯片(如iPhone的A系列SoC整合CPU、GPU、射频模块)。2、芯片测试 (1
    碧海长空 2025-04-15 11:45 315浏览
  • 一、引言:智能化趋势下的学爬玩具开发挑战随着早教理念的普及,学爬玩具作为婴幼儿早期运动能力开发的重要工具,市场需求持续增长。然而,传统学爬玩具开发面临多重挑战:需集成红外遥控、语音交互、电机控制等多模块,开发周期长、硬件成本高;复杂的红外编解码与语音功能实现依赖工程师深度参与,技术门槛陡增。如何以更低成本、更快速度打造差异化产品,成为行业亟待解决的痛点。二、传统开发模式痛点分析硬件冗余红外接收模块、语音芯片、主控MCU分立设计,导致PCB面积增加,BOM成本攀升。开发周期长需工程师独立完成红外协
    广州唯创电子 2025-04-16 08:40 140浏览
  • 多极电磁铁的核心应用领域一、工业制造领域1.‌磁性材料处理‌:用于多极磁环充磁,通过四极、六极或八极磁场设计,使磁环获得均匀或梯度分布的磁性能,提升电机、传感器等设备的效率‌。在电子束焊接中控制电子束的聚焦和偏转,增强焊接精度(如精密电子元件加工)‌。2.‌机械控制与自动化‌应用于旋转磁场导向系统,优化工业机器人、自动化产线中磁性物料的传输路径。配合电磁吸盘用于起重设备,实现对金属部件的快速吸附与释放,提高搬运效率。二、科研实验领域1.‌物理与材料研究‌在实验室中生成径向梯度磁场或均匀磁场,用于
    锦正茂科技 2025-04-16 09:39 78浏览
  • 2025年4月13日(中国武汉)——在全球经济分化与地缘政治不确定性加剧的背景下,科技与金融的深度融合已成为推动创新与繁荣的关键动力。为实现科技创新、产业进步和金融发展有机结合,发挥金融对科技创新和产业进步的支持作用,国际金融论坛(IFF)科技金融委员会启动大会暨首届科技金融圆桌会议于4月13日在湖北省武汉市武汉产业创新发展研究院成功举行。同时,IFF科技金融委员会由国际金融论坛IFF与武创院联合成立。本次大会汇聚了来自政府、产业与学术研究机构及金融等多领域的精英,共同探讨科技金融如何更好地服务
    华尔街科技眼 2025-04-15 20:53 101浏览
  • 在这个AI技术日新月异的时代,人工智能(AI)已经逐渐渗透到我们生活的方方面面,从工作到学习,从娱乐到医疗,AI都在以其独特的方式改变着我们的世界。作为一名计算机专业的大学老师,我近期有幸阅读了《AI帮你赢:人人都能用的AI方法论》一书,深感这本书不仅为专业人士提供了宝贵的AI使用技巧,更为广大学生打开了一扇通往AI世界的大门。 《AI帮你赢》一书于2024年12月正式出版,也是紧跟时代发展的一本书,最新的日期。这本书以通俗易懂的语言,系统地阐述了人工智能的核心理念、应用场景及实践方法
    curton 2025-04-16 21:47 84浏览
  • 4月15日,京东全球购迎来十周年生日。为了回馈广大用户十年来的支持与信赖,早在4月初,京东全球购就已率先开启十周年庆典活动,为消费者带来了一场消费盛宴。来自全球各地的进口好物,以全场进口大牌1元抢、爆品低至5折、跨店每满200减30的优惠价格被呈现在消费者面前。同时,在迎来十周年庆典之际,京东全球购还宣布,未来一年,将投入亿级资源,升级四大商家扶持举措,包括提供仓配和流量等多项补贴,推出扶持新品、新商家等举措,助力更多进口商家降本提效,在京东获得可持续、高质量成长。十年如一日 打造跨境购物首选平
    华尔街科技眼 2025-04-16 16:18 96浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦