標(biāo)題: TM1650按鍵的長(zhǎng)按短按識(shí)別 [打印本頁(yè)]

作者: 菜鳥(niǎo)123321    時(shí)間: 2022-12-17 18:57
標(biāo)題: TM1650按鍵的長(zhǎng)按短按識(shí)別
小弟初學(xué)者,基本功不行,請(qǐng)教各位大神不吝賜教,TM1650掃描按鍵,單片機(jī)怎么來(lái)識(shí)別短按,長(zhǎng)按和雙擊來(lái)實(shí)現(xiàn)不同的功能




作者: lkc8210    時(shí)間: 2022-12-18 14:16


1000


20()1000

作者: wkman    時(shí)間: 2022-12-19 08:23
長(zhǎng)按鍵很簡(jiǎn)單啊。
void Key_Act(void)
{
    uchar key_num=0;
   
    if(ms200_ok_flag==1)
    {
        ms200_ok_flag=0;
        
        key_num=KeyScan();
        if(last_key != key_num)//鍵值有變
        {
            Key_Fun(last_key);//短按->執(zhí)行

            last_key = key_num;//鍵值更新
        }
        else//last_key == key_num//鍵值無(wú)變化
        {
            if(key_num != 0)//有效長(zhǎng)按鍵
            {
                switch(key_num)
                {
                    case 1 ://啟停:長(zhǎng)按3s清零
                            break;
                    case 2 ://++
                            break;
                    case 3 ://--
                }
            }
        }
    }
}
作者: 菜鳥(niǎo)123321    時(shí)間: 2022-12-22 12:41
wkman 發(fā)表于 2022-12-19 08:23
長(zhǎng)按鍵很簡(jiǎn)單啊。
void Key_Act(void)
{

我試試看,迷糊了幾天,搞死了
作者: 菜鳥(niǎo)123321    時(shí)間: 2022-12-22 13:59
lkc8210 發(fā)表于 2022-12-18 14:16
1000

你的意思是不是用定時(shí)器計(jì)時(shí)然后再判斷
作者: lkc8210    時(shí)間: 2022-12-23 11:31
菜鳥(niǎo)123321 發(fā)表于 2022-12-22 13:59
你的意思是不是用定時(shí)器計(jì)時(shí)然后再判斷

審批AI把我的代碼刪了

定時(shí)器產(chǎn)生1ms中斷
每1ms讀取TM1650的鍵值一次以下是示范代碼



作者: hi等你    時(shí)間: 2023-1-6 09:18
不要用中斷,中斷留給更重要的顯示部件用,讀一次1650返回的鍵值確認(rèn)按下的話(huà)用軟件延時(shí)0.5秒再讀鍵如果再按下再回頭讀鍵,反復(fù)七八次就達(dá)到幾秒長(zhǎng)按的要求。如果一個(gè)讀鍵都用到中斷的話(huà)會(huì)影響掃描方式的顯示狀態(tài)。
作者: lkc8210    時(shí)間: 2023-1-6 10:07
hi等你 發(fā)表于 2023-1-6 09:18
不要用中斷,中斷留給更重要的顯示部件用,讀一次1650返回的鍵值確認(rèn)按下的話(huà)用軟件延時(shí)0.5秒再讀鍵如果再 ...

1650內(nèi)置掃描顯示驅(qū)動(dòng)
不需要用中斷來(lái)更新
作者: hi等你    時(shí)間: 2023-1-9 15:27
lkc8210 發(fā)表于 2023-1-6 10:07
1650內(nèi)置掃描顯示驅(qū)動(dòng)
不需要用中斷來(lái)更新

對(duì)對(duì)對(duì),我居然忘記1650是個(gè)顯示驅(qū)動(dòng),發(fā)送一次顯示數(shù)據(jù)就能亮,我用長(zhǎng)按短按并沒(méi)有用到中斷




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1