找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1279|回复: 10
收起左侧

想问一下单片机按键优先级问题

[复制链接]
ID:858009 发表于 2022-2-9 10:37 | 显示全部楼层 |阅读模式
P35->P34  (音量-)VOL-拉低1
P34->P35  (音量+)VOL+拉低1
P32->P33  (上一曲) VOL-拉低20m
P33->P32  (下一曲) VOL+拉低20m
识别以音量优先,当同时识别到音量与选曲操作时,优先执行音量,不执行选曲

1、两个按键一个操作,分优先级考虑
求指导一下思路,怎么考虑这个优先级,如果没有优先级我可以控制,考虑一个按键一个优先级我以为可以
问题是两个按键一个操作,还分优先级,思路应该怎么控制可以实现,求指导一下
使用的是ch552类型单片机
回复

使用道具 举报

ID:624769 发表于 2022-2-9 18:16 来自手机 | 显示全部楼层
按键按下,置标志,不同按键不同标志,定期检测标志,先判断音量标志,如需执行音量则执行后清所有标志,包括选曲标志。
回复

使用道具 举报

ID:161164 发表于 2022-2-9 20:19 | 显示全部楼层
不明白为什么要两个按键一个操作
  不明白"拉低1"是什么意思
  不明白"拉低20m"的20m是什么意思
  不明白P34->P35是什么意思, 是先按P34然后几毫秒内按P35吗?

P35(音量-)->P34(音量+)  = VOL-拉低1
P34(音量+)->P35(音量-)  = VOL+拉低1
P32(上一曲)->P33(下一曲)  = VOL-拉低20m
P33(下一曲)->P32(上一曲)  = VOL+拉低20m
这样理解对吗?
音量不就是VOL吗?

加个互锁代码
If(!P35 && P34)P35_First = 1;
If(P35 && !P34)P34_First = 1;
If(P35 && P34)//放开清零
{
P34_First = 0;
P35_First = 0;
}
If(!P35 && !P34)
{
If(P35_First)
{
//VOL-拉低1
}
If(P34_First)
{
//VOL+拉低1
}
}
回复

使用道具 举报

ID:858009 发表于 2022-2-10 09:46 | 显示全部楼层
lkc8210 发表于 2022-2-9 20:19
不明白为什么要两个按键一个操作
  不明白"拉低1"是什么意思
  不明白"拉低20m"的20m是什么意思

理解是这样的,先按P35等待几毫秒,再按下P34,然后减音量(IO口拉低1s)但是我不太明白,互锁代码
是先按下P35,然后按下P34,一个标记P35_First=1;然后读取标志位?
还是按下P35就标记一次?
回复

使用道具 举报

ID:161164 发表于 2022-2-10 10:33 | 显示全部楼层
qwettyuio 发表于 2022-2-10 09:46
理解是这样的,先按P35等待几毫秒,再按下P34,然后减音量(IO口拉低1s)但是我不太明白,互锁代码
是先 ...

对~就是按下P35就标记一次

还要加个延时
按下P35几百毫秒后没其他键按下就执行原本P35 的功能
回复

使用道具 举报

ID:858009 发表于 2022-2-10 14:08 | 显示全部楼层
lkc8210 发表于 2022-2-10 10:33
对~就是按下P35就标记一次

还要加个延时

能不能P35按下,等待几毫秒,P34按下,然后标记一次,主函数读取标记进行控制?
回复

使用道具 举报

ID:858009 发表于 2022-2-10 14:12 | 显示全部楼层
lkc8210 发表于 2022-2-10 10:33
对~就是按下P35就标记一次

还要加个延时

要两个按键控制一个操作,而且分优先级,可以指导一下思路吗?
回复

使用道具 举报

ID:161164 发表于 2022-2-11 00:27 | 显示全部楼层
qwettyuio 发表于 2022-2-10 14:12
要两个按键控制一个操作,而且分优先级,可以指导一下思路吗?

参考一下
2022-02-11_002534.png
回复

使用道具 举报

ID:57657 发表于 2022-2-11 07:47 | 显示全部楼层
4个不同的按键的按下后 值a b c d分别为1 2 3 4,松开清0。
max函数返回最大值,e=max(a,b,c,d) e的值是要执行的操作。
回复

使用道具 举报

ID:401564 发表于 2022-2-11 15:55 | 显示全部楼层
不要搞得太复杂,这只是一个简单的应用而已
四个按键分别对应音量加,音量减,上一曲,下一曲
按下音量加,音量减按键无效
按下上一曲,下一曲按键无效
其它的也作对应处理就可以了
回复

使用道具 举报

ID:161164 发表于 2022-2-12 10:50 | 显示全部楼层

改进版,第二键按下立刻有反应
ezgif.com-video-to-gif.gif

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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