找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1451|回复: 19
打印 上一主题 下一主题
收起左侧

关于单片机任务模式的解惑,时间片轮询法

[复制链接]
楼主
ID:401564 发表于 2022-12-15 00:46 | 显示全部楼层
对于简单而且是单一的程序而言,所谓'效率'有时候并不重要
比如我就一个LED手电,按键就是开关的作用而已,这个时候,去抖动,没有什么比delay更爽的了,手电开了就开了,ADC用中断,就再也没有其它的事情做了,我还怕单片机累着了不成?
但是你也必须要学会提高单片机效率,有的系统对效率确实是有很高的要求的
对于你说的"时间片轮询法"我没学过,基于百度的理解,感觉这也不怎么好
我常用的办法是:
1,先声明一个全局变量 time,key结构体其实也行,个人习惯而已
2,按键按下之后,time清除,key置位
3,在systick或者定时器中断中,time++
4,主函数就是  if(key&&(time >= 50ms)//50mS由自己决定延时时间
{
key = 0;
执行按键相关处理
}
这样一来,随便你按键怎么按,怎么抖动,它只作一个处理:       time = 0;  key = 1;
永远是以你最后松开按键之后,稳定了之后的50mS,再执行按键相关操作
按键读取就只占用两个语句的时间而已
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表