找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2177|回復(fù): 10
收起左側(cè)

想問一下單片機按鍵優(yōu)先級問題

[復(fù)制鏈接]
ID:858009 發(fā)表于 2022-2-9 10:37 | 顯示全部樓層 |閱讀模式
P35->P34  (音量-)VOL-拉低1
P34->P35  (音量+)VOL+拉低1
P32->P33  (上一曲) VOL-拉低20m
P33->P32  (下一曲) VOL+拉低20m
識別以音量優(yōu)先,當(dāng)同時識別到音量與選曲操作時,優(yōu)先執(zhí)行音量,不執(zhí)行選曲

1、兩個按鍵一個操作,分優(yōu)先級考慮
求指導(dǎo)一下思路,怎么考慮這個優(yōu)先級,如果沒有優(yōu)先級我可以控制,考慮一個按鍵一個優(yōu)先級我以為可以
問題是兩個按鍵一個操作,還分優(yōu)先級,思路應(yīng)該怎么控制可以實現(xiàn),求指導(dǎo)一下
使用的是ch552類型單片機
回復(fù)

使用道具 舉報

ID:624769 發(fā)表于 2022-2-9 18:16 來自觸屏版 | 顯示全部樓層
按鍵按下,置標(biāo)志,不同按鍵不同標(biāo)志,定期檢測標(biāo)志,先判斷音量標(biāo)志,如需執(zhí)行音量則執(zhí)行后清所有標(biāo)志,包括選曲標(biāo)志。
回復(fù)

使用道具 舉報

ID:161164 發(fā)表于 2022-2-9 20:19 | 顯示全部樓層
不明白為什么要兩個按鍵一個操作
  不明白"拉低1"是什么意思
  不明白"拉低20m"的20m是什么意思
  不明白P34->P35是什么意思, 是先按P34然后幾毫秒內(nèi)按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
}
}
回復(fù)

使用道具 舉報

ID:858009 發(fā)表于 2022-2-10 09:46 | 顯示全部樓層
lkc8210 發(fā)表于 2022-2-9 20:19
不明白為什么要兩個按鍵一個操作
  不明白"拉低1"是什么意思
  不明白"拉低20m"的20m是什么意思

理解是這樣的,先按P35等待幾毫秒,再按下P34,然后減音量(IO口拉低1s)但是我不太明白,互鎖代碼
是先按下P35,然后按下P34,一個標(biāo)記P35_First=1;然后讀取標(biāo)志位?
還是按下P35就標(biāo)記一次?
回復(fù)

使用道具 舉報

ID:161164 發(fā)表于 2022-2-10 10:33 | 顯示全部樓層
qwettyuio 發(fā)表于 2022-2-10 09:46
理解是這樣的,先按P35等待幾毫秒,再按下P34,然后減音量(IO口拉低1s)但是我不太明白,互鎖代碼
是先 ...

對~就是按下P35就標(biāo)記一次

還要加個延時
按下P35幾百毫秒后沒其他鍵按下就執(zhí)行原本P35 的功能
回復(fù)

使用道具 舉報

ID:858009 發(fā)表于 2022-2-10 14:08 | 顯示全部樓層
lkc8210 發(fā)表于 2022-2-10 10:33
對~就是按下P35就標(biāo)記一次

還要加個延時

能不能P35按下,等待幾毫秒,P34按下,然后標(biāo)記一次,主函數(shù)讀取標(biāo)記進(jìn)行控制?
回復(fù)

使用道具 舉報

ID:858009 發(fā)表于 2022-2-10 14:12 | 顯示全部樓層
lkc8210 發(fā)表于 2022-2-10 10:33
對~就是按下P35就標(biāo)記一次

還要加個延時

要兩個按鍵控制一個操作,而且分優(yōu)先級,可以指導(dǎo)一下思路嗎?
回復(fù)

使用道具 舉報

ID:161164 發(fā)表于 2022-2-11 00:27 | 顯示全部樓層
qwettyuio 發(fā)表于 2022-2-10 14:12
要兩個按鍵控制一個操作,而且分優(yōu)先級,可以指導(dǎo)一下思路嗎?

參考一下
2022-02-11_002534.png
回復(fù)

使用道具 舉報

ID:57657 發(fā)表于 2022-2-11 07:47 | 顯示全部樓層
4個不同的按鍵的按下后 值a b c d分別為1 2 3 4,松開清0。
max函數(shù)返回最大值,e=max(a,b,c,d) e的值是要執(zhí)行的操作。
回復(fù)

使用道具 舉報

ID:401564 發(fā)表于 2022-2-11 15:55 | 顯示全部樓層
不要搞得太復(fù)雜,這只是一個簡單的應(yīng)用而已
四個按鍵分別對應(yīng)音量加,音量減,上一曲,下一曲
按下音量加,音量減按鍵無效
按下上一曲,下一曲按鍵無效
其它的也作對應(yīng)處理就可以了
回復(fù)

使用道具 舉報

ID:161164 發(fā)表于 2022-2-12 10:50 | 顯示全部樓層

改進(jìn)版,第二鍵按下立刻有反應(yīng)
ezgif.com-video-to-gif.gif

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表