热搜关键词: 电路基础ADC数字信号处理封装库PLC

docx

如何设计复杂的多任务程序.

  • 1星
  • 2015-08-02
  • 203.29KB
  • 需要2积分
  • 0次下载
标签: mcu51

mcu51

    如何设计复杂的多任务程序 

我们在入门阶段,一般面对的设计都是单一的简单的任务,流程图可以如图  1  所示,通

常会用踏步循环延时来满足任务需要。 

面对多任务,稍微复杂的程序设计,沿用图  1  的思想,我们会做出如图  2  所示的程序,

在大循环体中不断增加任务,通常还要用延时来满足特定任务节拍,这种程序设计思想它有

明显的不足,主要是各个任务之间相互影响,增加新的任何之后,以前很好的运行的任务有

可能不正常,例如数码管动态扫描,本来显示效果很好的驱动函数,在增加新的任务后出现

闪烁,显示效果变差了。 

   

 

(原文件名:1.JPG) 

图1  单一任务简单流程图                        图2  多任务简单流程图 

很明显,初学者在设计程序时,需要从程序构架思想上下功夫,在做了大量基本模块练

习之后,需要总结提炼自己的程序设计思路(程序架构思想)。 

首先我们来理解“任务”,所谓任务,就是需要  CPU  周期“关照”的事件,绝大多数任

务不需要  CPU  一直“关照”  ,例如启动  ADC  的启动读取。甚至有些任务“害怕”CPU  一直

“关照”例如  LCD  的刷新,因为  LCD  是显示给人看的,并不需要高速刷新,即便是显示的 

内容在高速变化,也不需要高速刷新,道理是一样的。这样看来,让CPU做简单任务一定很

浪费,事实也是如此,绝大多数简单任务,CPU都是在“空转”  (循环踏步延时)  。对任务总

结还可以知道,很多任务需要  CPU  不断“关照”  ,其实这种“不断”也是有极限的,比如数

码管动态扫描,能够做到40Hz  就可以了,又如键盘扫描,能够做到20Hz(经验值),基本上

也就不会丢有效按键键值了,再如LCD刷新,我觉得做到  10Hz  就可以了,等等。看来,绝

大多数任务都是工作在低速频度。而我们的CPU一旦运行起来,速度又很快,CPU本身就是

靠很快的速度执行很简单的指令来胜任复杂的任务(逻辑)的。如果有办法把“快”的  CPU

分成多个慢的CPU,然后给不同的任务分配不同速度的CPU,这种设想是不是很好呢!确实

很好,下面就看如何将“快”的CPU划分成多个“慢”的  CPU。 

根据这种想法,我们需要合理分配CPU资源来“关照”不同的任务,最好能够根据任务

本身合理占用CPU资源,首先看如图  3  所示的流程图,各个任务流程独立,各任务通过全局

变量来交互信息,在流程中有一个重要的模块“任务切换”,就是任务切换模块实现  CPU  合

理分配,这个任务切换模块是怎么实现的呢? 

展开预览

猜您喜欢

推荐帖子 最新更新时间:2024-11-13 03:49

拆一个智能手环
    一个30多元钱买的智能手环,有计时、计步、测睡眠、测血压及心率、手机信息或来电提醒等功能,用了一年多时间,最近彻底罢工了——无法充电。下图为手机的外貌:     早就有拆开一看究竟的打算,这次正中下怀,正好给拆卸带来了理由,于是开始研究如何下手 拆卸。     经过观察,手环应该是上下外壳扣接的,于是用尖嘴钳在扣手环胶带的槽中轻轻一撬,上下外壳就分离了,开
hujj 以拆会友
MSP430单片机实现秒表,使用proteus8.7仿真
程序中用到两个时钟。 MCLK设置为8MHZ 仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)   定时器A0时钟选择SMCLK,32768HZ,可在proteus中设置 功能描述: 数码管显示秒、分。在显示过程中如果按下按键,则触发中断,停止计数, 再按一次,秒表继续计数。 开发中遇到的问题:在同时显示两个以上数码管时,由于P2端口的数据没有全部置位(共阳极数码管),
fish001 微控制器 MCU
BZ534X PSAM卡Mifare接触式IC卡读写核心模块
主要特点: 支持IS07816标准 最多可操作2个PSAM卡和1个CPU接触式大卡 该ASIC芯片支持高速(38400)、低速(9600)PSAM卡和接触式CPU卡 尺寸:62*42*14mm 目前被广泛应用于交通一卡通等的密钥认证 型号间主要区别: 型号        主要区别        支持卡型号 BZ534A        UART接口,支持1个PSAM卡       
yzkexin 嵌入式系统
CC2541,BLE协议栈1.3.0版本,串口打印DHT11出现问题,如何解决?
本帖最后由 莀荒蔚 于 2020-3-29 12:37 编辑 协议栈1.3.0版本,从机文件 其中 1.添加调用DHT11采集事件(SimpleBLEPeripheral.c的SimpleBLEPeripheral_ProcessEvent中的SBP_START_DEVICE_EVT事件)       2.定义DHT11采集事件、DHT11串口发送事件(Simpl
莀荒蔚 无线连接
UWB二维定位基站部署原则
超宽带(UWB脉冲)使用频段为大于3GHz以上,相比于2.4Ghz(手机、WIFI信号)频段来说UWB信号绕射性能很差,相当于点对点的通信,因为这个特点使得UWB技术具有天生的测距性能优势,UWB技术用于室内定位可以实现10~30厘米的精确定位精度。   1.UWB定位基站的部署原则   二维定位原理基于三角定位算法实现(如下图所示),要保证良好的定位精度就需要保证标签和不
兰博 RF/无线
卫星距离记录
这个验证了无线电磁波的重要性和后期的便利性  我们必须研究一下   这玩意儿记录数据到底准不准 卫星距离记录 AO-40(美国/美国)– 18,730 公里。RF72mv 中的 ZL1AOX <> JM47ts 中的 DJ5MN/MM。2003 年 8 月 24 日 22:54 UTC。(来源 ZL1AOX) AO-40 (L/S) – 18,298 公里。 RF72
btty038 RF/无线
开源电子书 Open Book
Open Book是一种开源硬件设备,用于阅读世界上所有语言的书籍。它包括一个大屏幕和用于导航的按钮,以及用于辅助功能的音频选项和用于扩展其功能的端口。 Open Book核心是SAMD51J19A微控制器,这是一个功能强大的ARM Cortex M4处理器,具有512 KB的闪存和192 KB的RAM。它具有51个GPIO引脚,用于外设控制和功能扩展: 400×300黑
dcexpert DIY/开源硬件专区
DSP算法标准及其应用
DSP算法标准及其应用为改变这种状况,TI公司推出了一套编写和使用DSP算法的标准,让系统集成商可以快速集成和使用已有的商用DSP算法软件,可以大大减少基于DSP产品的上市时间。   2 DSP算法标准的相关背景和概念   2.1 通用算法的特征   由于DSP应用十分广泛,支持数字信号处理器的平台或操作系统又很多,这些复杂的平台对于算法标准就提出了很高的要求。一个算法要真正实现“即插即用”
Aguilera DSP 与 ARM 处理器

评论

登录/注册

意见反馈

求资源

回顶部

推荐内容

热门活动

热门器件

随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
×