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

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 1985|回復(fù): 15
收起左側(cè)

如何再新增加一個(gè)按鍵程序

[復(fù)制鏈接]
ID:913288 發(fā)表于 2021-11-15 18:58 | 顯示全部樓層 |閱讀模式
本人軟件小白,原視頻教程只講了一個(gè)按鍵的使用方法,但我現(xiàn)在要用到幾個(gè)按鍵,現(xiàn)在不知道怎么弄第二個(gè)按鍵程序
下面是一個(gè)按鍵的代碼,不知道怎么弄第二個(gè)按鍵的代碼

void userapp_deal_key_msg(sys_msg_key_data_t  *key_msg)
{
        if(key_msg->key_index != KEY_NULL)
            {  

                if(key_msg->key_index == 1)            

                        if(MSG_KEY_STATUS_PRESS == key_msg->key_status)
                        {

                        }
                        else if(MSG_KEY_STATUS_PRESS_LONG == key_msg->key_status)
                        { //vr_flg
                                if(key_prs==0)
                                {
                                switch(vr_flg)
                                {
                                case 0:
                                        vr_flg=1;
                                        pause_voice_in();
                                        prompt_play_by_cmd_string("<A>",3,play_voice_callback,true);
                                                break;
                                case 1:
                                        vr_flg=0;
                                        pause_voice_in();
                                        prompt_play_by_cmd_string("<A>",4,play_voice_callback,true);
                                                break;
                                }
                                }
                                key_prs=1;

                        }
                        else if(MSG_KEY_STATUS_RELEASE == key_msg->key_status)
                        {
                                if(key_prs == 1)
                                {
                                        key_prs=0;
                                }else{
                                switch(power_flg)
                                {
                                case 0:
                                        power_flg=1;
                                        gpio_set_output_level_single(GPIO1,gpio_pin_6,1);
                                        gpio_set_output_level_single(GPIO1,gpio_pin_5,1);
                                                break;
                                case 1:
                                        power_flg=0;
                                        gpio_set_output_level_single(GPIO1,gpio_pin_6,0);
                                        gpio_set_output_level_single(GPIO1,gpio_pin_5,0);
                                                break;

                                                                {

                                }
                                }
                        }
                }
            }
}

回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-16 00:00 | 顯示全部樓層
if(key_msg->key_index == 1)
是按鍵一,按鍵二應(yīng)該怎么弄?求教...
回復(fù)

使用道具 舉報(bào)

ID:584195 發(fā)表于 2021-11-16 07:25 | 顯示全部樓層
cy2634900 發(fā)表于 2021-11-16 00:00
if(key_msg->key_index == 1)
是按鍵一,按鍵二應(yīng)該怎么弄?求教...

要學(xué)會(huì)用狀態(tài)機(jī),我還沒(méi)學(xué)會(huì)!
回復(fù)

使用道具 舉報(bào)

ID:115923 發(fā)表于 2021-11-16 09:54 | 顯示全部樓層

if(key_msg->key_index == 2)  /// 在這了,  按鍵一就是==1,按鍵二就是==2  
回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-16 12:55 | 顯示全部樓層
zhaobolove 發(fā)表于 2021-11-16 09:54
if(key_msg->key_index == 2)  /// 在這了,  按鍵一就是==1,按鍵二就是==2  [e ...

這個(gè)地方是對(duì)應(yīng)的按鍵號(hào)我知道,但改了后還不是只有一個(gè)按鍵嗎?比如把1改為2那1號(hào)按鍵就沒(méi)有了嗎?我現(xiàn)在想問(wèn)的問(wèn)題是怎么才能讓按鍵1 按鍵2以及按鍵三同時(shí)存在?感謝你的回復(fù)軟件我噻也不懂。。。。
回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-16 20:38 | 顯示全部樓層
沒(méi)有人知道嗎?這個(gè)對(duì)懂軟件的人來(lái)說(shuō)應(yīng)該沒(méi)什么難度吧?
回復(fù)

使用道具 舉報(bào)

ID:528362 發(fā)表于 2021-11-16 23:15 | 顯示全部樓層
正好我也在找相關(guān)資料,看到過(guò)一個(gè)4按鍵的,是把各按鍵的程序都寫了一遍。
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2021-11-17 00:12 | 顯示全部樓層
cy2634900 發(fā)表于 2021-11-16 12:55
這個(gè)地方是對(duì)應(yīng)的按鍵號(hào)我知道,但改了后還不是只有一個(gè)按鍵嗎?比如把1改為2那1號(hào)按鍵就沒(méi)有了嗎?我現(xiàn) ...

不是難度不難度的問(wèn)題, 弄幾個(gè)按鍵,基本大多數(shù)人都會(huì),但是要切合你的實(shí)際情況,就比較麻煩了。
首先,         if(key_msg->key_index != KEY_NULL)   能寫出這種代碼的,我不認(rèn)為會(huì)搞不定一兩個(gè)按鍵。而實(shí)際上,個(gè)人覺(jué)得,用狀態(tài)機(jī)寫按鍵實(shí)在是有點(diǎn)大炮打蚊子。再然后,地板其實(shí)已經(jīng)講得挺清楚了, 你只要照虎畫貓,復(fù)制一下你的按鍵1,然后寫個(gè)2上去,就有按鍵2了。當(dāng)然,如果物理上,你的單片機(jī)壓根沒(méi)接按鍵2,另說(shuō)。

所以,結(jié)合各種因素,最大的可能,這代碼你自己都看不明白。然后你要加按鍵,加了按鍵干什么,你其實(shí)也不知道,即便,給你寫一個(gè)按鍵程序發(fā)給你,你的目的大概率也不會(huì)達(dá)成,而且會(huì)引申出各種其他問(wèn)題,而解決這一系列引申出來(lái)的問(wèn)題,也許比從零開(kāi)始教一個(gè)小白學(xué)會(huì)添加幾十個(gè)按鍵都要復(fù)雜很多倍。畢竟,你都用        if(key_msg->key_index != KEY_NULL) 來(lái)寫按鍵了。

那么,你這問(wèn)題,其實(shí)就像燙手的山芋,大多數(shù)人是不敢接的……,換個(gè)角度講,地板試了水之后,大多數(shù)人對(duì)于你這個(gè)問(wèn)題,感到無(wú)從下手啊……
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-11-17 09:36 | 顯示全部樓層
按鍵是最基本的輸入設(shè)備,用單鍵實(shí)現(xiàn)多功能無(wú)非就是短按、長(zhǎng)按、連擊等等。這就需要識(shí)別當(dāng)前操作與過(guò)往狀態(tài)的邏輯關(guān)系。常見(jiàn)的編程方法是定義若干狀態(tài)標(biāo)志,以此確定執(zhí)行多分支功能的走向。樓主提供的代碼不完整且有錯(cuò)誤,可能是樓主抄寫疏漏。但其不應(yīng)該作為入門教材案例。倒像是某人炫技作品。不易讀、易懂,缺乏普適性,新手不易去深究。
回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-17 13:59 | 顯示全部樓層
本帖最后由 cy2634900 于 2021-11-17 18:51 編輯
188610329 發(fā)表于 2021-11-17 00:12
不是難度不難度的問(wèn)題, 弄幾個(gè)按鍵,基本大多數(shù)人都會(huì),但是要切合你的實(shí)際情況,就比較麻煩了。
首先 ...

這些代碼都不是我寫的,我軟件噻也不懂只懂硬件,是在網(wǎng)上買的一個(gè)模塊附帶的,我就是你說(shuō)的照虎畫貓那種知道改一些IO端口
回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-17 14:01 | 顯示全部樓層
wulin 發(fā)表于 2021-11-17 09:36
按鍵是最基本的輸入設(shè)備,用單鍵實(shí)現(xiàn)多功能無(wú)非就是短按、長(zhǎng)按、連擊等等。這就需要識(shí)別當(dāng)前操作與過(guò)往狀態(tài) ...

我發(fā)的代碼是我買模塊的商家提供的,那些代碼一個(gè)按鍵運(yùn)行沒(méi)有問(wèn)題,只是不知道第二個(gè)按鍵的代碼怎么弄
回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-17 14:11 | 顯示全部樓層
本帖最后由 cy2634900 于 2021-11-17 20:27 編輯
188610329 發(fā)表于 2021-11-17 00:12
不是難度不難度的問(wèn)題, 弄幾個(gè)按鍵,基本大多數(shù)人都會(huì),但是要切合你的實(shí)際情況,就比較麻煩了。
首先 ...

我發(fā)的代碼是我買模塊的商家提供的,那些代碼一個(gè)按鍵運(yùn)行沒(méi)有問(wèn)題,只是不知道第二個(gè)按鍵的代碼怎么弄
回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-17 14:19 | 顯示全部樓層
本帖最后由 cy2634900 于 2021-11-17 22:03 編輯
188610329 發(fā)表于 2021-11-17 00:12
不是難度不難度的問(wèn)題, 弄幾個(gè)按鍵,基本大多數(shù)人都會(huì),但是要切合你的實(shí)際情況,就比較麻煩了。
首先 ...

這些代碼不是我寫的我軟件噻也不懂,只懂硬件
回復(fù)

使用道具 舉報(bào)

ID:955271 發(fā)表于 2021-11-17 14:36 | 顯示全部樓層
看按鍵功能的,如果按鍵功能相似就復(fù)制一份,然后參數(shù)改一下就好了,如果主函數(shù)里面是用狀態(tài)機(jī)實(shí)現(xiàn)的話就需要用到switch語(yǔ)句
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2021-11-17 14:50 | 顯示全部樓層
cy2634900 發(fā)表于 2021-11-17 14:19
這些代碼不是我寫的我軟件噻也不懂,只懂硬件。我就是你說(shuō)那種照虎畫貓的,增加按鍵的作用我很清楚,這個(gè) ...

if(按鍵 == 1)
{
  開(kāi)燈1
}
if(按鍵 == 2)
{
  開(kāi)燈2
}
懂?
回復(fù)

使用道具 舉報(bào)

ID:913288 發(fā)表于 2021-11-17 15:35 | 顯示全部樓層
lkc8210 發(fā)表于 2021-11-17 14:50
if(按鍵 == 1)
{
  開(kāi)燈1

懂了 ,感謝!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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