找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

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

[復(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
識(shí)別以音量?jī)?yōu)先,當(dāng)同時(shí)識(shí)別到音量與選曲操作時(shí),優(yōu)先執(zhí)行音量,不執(zhí)行選曲

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

ID:161164 發(fā)表于 2022-2-9 20:19 | 顯示全部樓層
不明白為什么要兩個(gè)按鍵一個(gè)操作
  不明白"拉低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
這樣理解對(duì)嗎?
音量不就是VOL嗎?

加個(gè)互鎖代碼
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ù)

使用道具 舉報(bào)

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

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

使用道具 舉報(bào)

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

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

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

使用道具 舉報(bào)

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

還要加個(gè)延時(shí)

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

使用道具 舉報(bào)

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

還要加個(gè)延時(shí)

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

使用道具 舉報(bào)

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

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

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

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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