怎么才能做到实时?

[复制链接]
2867|52
 楼主| guoyt 发表于 2019-9-1 20:01 | 显示全部楼层 |阅读模式

单片机程序既要不停的查询按键,又要动态刷新显示。
怎么才能做到实时?
hanwe 发表于 2019-9-1 20:05 | 显示全部楼层
然后呢?你是怎么应对这个的呢
 楼主| guoyt 发表于 2019-9-1 20:08 | 显示全部楼层
补充一点,我的单片机用于数据采集监控
llia 发表于 2019-9-1 20:10 | 显示全部楼层

处理器要并行处理必然要分时咯
 楼主| guoyt 发表于 2019-9-1 20:12 | 显示全部楼层


怎么进行分时?
是不是查询按键在一定时间(可设定)内没有按键强行退出去刷新数据?
wangpe 发表于 2019-9-1 20:15 | 显示全部楼层
查询按键时别停留 将结果用累计变量保存好  查完就走…………   显示就利用人眼的错觉 每隔那么10~20ms去刷一次就ok啦
langgq 发表于 2019-9-1 20:18 | 显示全部楼层


一般情况下是这样。
wangzsa 发表于 2019-9-1 20:21 | 显示全部楼层
用实时系统啊
zhuww 发表于 2019-9-1 20:25 | 显示全部楼层
就是把你整个系统的任务时间分配好,在固定时间只做固定的事情,但是每件事情都分得很精细。前后台思想,如果有条件可以参考时间触发嵌入式设计这本书的内容。
zhanglli 发表于 2019-9-1 20:28 | 显示全部楼层
其实你可以定时中断来刷新显示缓冲区,主程序里面来采集按键值和更新需要显示的数据.
lium 发表于 2019-9-1 20:30 | 显示全部楼层

这个实时是相对来说的。。。真想实时的话就一个MCU处理按键,一个MCU刷屏。。。哇嘎嘎
开个玩笑,当然是要按键能用中断解决就用中断,不能用中断就每隔100ms或再低一些的时间查询咯,显示的刷屏就没什么太高要求了,该怎么处理就怎么处理好了
 楼主| guoyt 发表于 2019-9-1 20:34 | 显示全部楼层

显示缓冲区是AD采样的数据,AD用的是中断。这个数据在中断中刷新是没有问题的.
关键是我对系统进行参数设置的时候不需要动态刷新显示。
在参数设置完毕后,希望没有按键的时候动态刷新显示
llia 发表于 2019-9-1 20:38 | 显示全部楼层

显示缓冲区是AD采样的数据,AD用的是中断。这个数据在中断中刷新是没有问题的.
关键是我对系统进行参数设置的时候不需要动态刷新显示。
在参数设置完毕后,希望没有按键的时候动态刷新显示
yufe 发表于 2019-9-1 20:41 | 显示全部楼层
既然是实时数据采集,那键盘和显示就不用扫描了,硬件完成就成了!
wangpe 发表于 2019-9-1 20:43 | 显示全部楼层
由于数码管的特殊性,刷新时间间隔要短一点,键盘间隔可以长一点,总之就是,这些东西你没必要一直去处理,定时做就可以了,所以实现这一点,你可以用定时器,如果系统很大的话,建议引入操作系统
wangzsa 发表于 2019-9-1 20:46 | 显示全部楼层
划分时间片,比如用定时器产生1ms定时。分时多任务。
llia 发表于 2019-9-1 20:49 | 显示全部楼层
如果MCU做的事比较多的话,可以用专门的按键显示芯片,MCU只管读写就行。。。
zhanglli 发表于 2019-9-1 21:02 | 显示全部楼层
如果干一件事件只要100US 1MS可以干10件事情,而人的眼睛看都看不到 别人已经干了10件事情。
lium 发表于 2019-9-1 21:05 | 显示全部楼层

总体系统来看,把问题分析好,思路上,理论上,都说得过去。
按键扫描,可以每10ms扫一次,扫到一个键和处理一个键,所用的时间一般不超过几百us。
动态显示,也可以每10ms刷新一次。
至于什么时候不想动态显示,完全可以用一个变量或标记位来控制。。。
hanwe 发表于 2019-9-1 21:08 | 显示全部楼层
从分析来看,AD采样占用一个定时器,产生10ms可以占用一个定时器,理论上没难度。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1018

主题

9067

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部