OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4440|回复: 7

关于按键扫描、按键处理、蜂鸣器的函数如何放置的问题

[复制链接]

3

主题

11

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2020-4-26
在线时间
4 小时
发表于 2020-4-28 11:22:19 | 显示全部楼层 |阅读模式
大家好!我最近编写程序的时候遇到几个问题,请各位大师知道下,谢谢!当我把 一下三个函数key_scanf() key_pp() buzzer() 放在main()中10ms扫描一次时 ,显示函数display()100ms扫描一次,有的时候出现了按键按下有检测不到的情况和检测到按键了蜂鸣器声音变长;后来我把三个函数key_scanf() key_pp() buzzer() 放在中断函数里面,定时10ms扫描一次,出现了按键按下蜂鸣器响显示更新慢的情况,各位大师一般是怎么处理这些的
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4307
金钱
4307
注册时间
2018-6-30
在线时间
808 小时
发表于 2020-4-28 15:42:25 | 显示全部楼层
本帖最后由 1208 于 2020-4-28 15:46 编辑

你可以设置不同的优先级和中断时间
业精于勤荒于嬉;行成于思毁于随!
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2020-4-26
在线时间
4 小时
 楼主| 发表于 2020-7-31 08:53:04 | 显示全部楼层
1208 发表于 2020-4-28 15:42
你可以设置不同的优先级和中断时间

主要是display执行时间太长了,导致有的时候没有检测到按键按下和蜂鸣器声音加长。main函数里面的写的不是很好
回复 支持 反对

使用道具 举报

9

主题

219

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1437
金钱
1437
注册时间
2020-5-12
在线时间
395 小时
发表于 2020-8-1 10:36:54 | 显示全部楼层
按键扫描放在中断里面,按键的处理放在main里面。按键的扫描结果用一个队列缓存起来,以免按键处理时间过长导致按键丢失的问题。然后main里面就是读队列的扫描结果,根据扫描结果去处理不同的事件。可以看我发的按键的demo
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2020-4-26
在线时间
4 小时
 楼主| 发表于 2020-8-3 13:51:11 | 显示全部楼层
叶子君 发表于 2020-8-1 10:36
按键扫描放在中断里面,按键的处理放在main里面。按键的扫描结果用一个队列缓存起来,以免按键处理时间过长 ...

我最后就把按键扫描  ke_scanf 、按键处理key_p、蜂鸣器 buzzer都放在中断函数里面了,这样的话 按键按下了,显示display稍微滞后一点
回复 支持 反对

使用道具 举报

9

主题

219

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1437
金钱
1437
注册时间
2020-5-12
在线时间
395 小时
发表于 2020-8-3 15:21:23 | 显示全部楼层
中断里面只放扫描
回复 支持 反对

使用道具 举报

0

主题

28

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
432
金钱
432
注册时间
2016-6-23
在线时间
66 小时
发表于 2020-8-7 15:52:37 | 显示全部楼层
中断里放扫描和蜂鸣器声音长短。
回复 支持 反对

使用道具 举报

3

主题

11

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2020-4-26
在线时间
4 小时
 楼主| 发表于 2020-8-12 09:28:34 | 显示全部楼层
liulan104 发表于 2020-8-7 15:52
中断里放扫描和蜂鸣器声音长短。

确实这样解决了 显示滞后的现象
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-30 13:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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