久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1368|回復: 12
收起左側

51單片機板子按鍵返回值求大佬幫幫忙

[復制鏈接]
ID:1114858 發表于 2024-3-31 14:15 | 顯示全部樓層 |閱讀模式
unsigned char  Positional_Selection()//位選:選擇更改位{

        if(Key()==2)
        {
               
                Bit_selection++;
               
        }
      
        if(Bit_selection>5)
        {
               
                Bit_selection=0;
      
        }

      
        return Bit_selection;
}
按下按鈕后
if(Key()==2)
        {

                Bit_selection++;

        }

這段代碼判斷失效
求各位大佬幫忙看下到底是哪出了問題
如果不使用函數進行按鍵判斷,將按鍵判斷的代碼直接寫到主程序的這樣是可以運行的,為什么,返回值有問題嗎
普中的板子

DS1302時鐘顯示 - 可調時鐘.rar

60.28 KB, 下載次數: 5

回復

使用道具 舉報

ID:1113342 發表于 2024-4-1 12:01 | 顯示全部樓層
找一個B站矩陣按鍵的函數看看,要消抖
回復

使用道具 舉報

ID:1114858 發表于 2024-4-1 20:46 | 顯示全部樓層
kk555 發表于 2024-4-1 12:01
找一個B站矩陣按鍵的函數看看,要消抖

謝謝,key函數里寫了消抖
回復

使用道具 舉報

ID:161164 發表于 2024-4-1 22:14 | 顯示全部樓層
代碼邏輯問題
每一次主循環里,key()函數只可運行一次
不要有類似
if(key()==1){...}
if(key()==2){...}
這種寫法
回復

使用道具 舉報

ID:1114858 發表于 2024-4-1 22:36 | 顯示全部樓層
lkc8210 發表于 2024-4-1 22:14
代碼邏輯問題
每一次主循環里,key()函數只可運行一次
不要有類似

大佬您好,非常感謝您能回復我的貼子,您說的我想了想還是不太明白,所以想問下您key()函數怎么改合適一點,麻煩您給我指一下方向,大概給個思路,真的很謝謝您。
回復

使用道具 舉報

ID:1109793 發表于 2024-4-2 07:39 | 顯示全部樓層
下一站過后 發表于 2024-4-1 22:36
大佬您好,非常感謝您能回復我的貼子,您說的我想了想還是不太明白,所以想問下您key()函數怎么改合適一 ...

例如char t;
t = key();
if(t==1);
if(t==2);
這樣就只運行了一次key();
或者可以switch(key()){case:1;case:2;}這樣是不是也行
回復

使用道具 舉報

ID:1114858 發表于 2024-4-2 09:39 來自手機 | 顯示全部樓層
xiaobendan001 發表于 2024-4-2 07:39
例如char t;
t = key();
if(t==1);

非常感謝大佬您的回復,麻煩問下我可不可以理解為每一次循環相同的函數只會調用一次,剛學沒多久,不大明白,謝謝您
回復

使用道具 舉報

ID:1109793 發表于 2024-4-2 09:55 | 顯示全部樓層
下一站過后 發表于 2024-4-2 09:39
非常感謝大佬您的回復,麻煩問下我可不可以理解為每一次循環相同的函數只會調用一次,剛學沒多久,不大明 ...

調用多少次你自己說了算,但是類似您這樣大量使用delay的情況下多長重復調用會消耗很多時間,這導致反應變慢很多。你可以嘗試在定時器中斷里面做一個計數器,用來消除抖動帶來的影響。只要不使用DELAY這種,一個比如1ms的定時器里可以做很多事,實在不行2ms也可以
回復

使用道具 舉報

ID:1114858 發表于 2024-4-2 10:14 來自手機 | 顯示全部樓層
xiaobendan001 發表于 2024-4-2 09:55
調用多少次你自己說了算,但是類似您這樣大量使用delay的情況下多長重復調用會消耗很多時間,這導致反應 ...

謝謝您的回復,這段程序的問題主要是出在延時函數的問題嗎?延時函數確實會影響到程序運行的效率,它會影響到我這個按鍵的判斷嗎?這個邏輯我不是很明白,謝謝您。麻煩您有空指導一下我的問題是出在哪。
回復

使用道具 舉報

ID:1114858 發表于 2024-4-2 13:17 來自手機 | 顯示全部樓層
lkc8210 發表于 2024-4-1 22:14
代碼邏輯問題
每一次主循環里,key()函數只可運行一次
不要有類似

大佬您好,我想問下您說的這個每一次主循環里key()函數只可運行一次,這個是什么意思,為什么只可以運行一次,我查了很久的資料也沒有答案,麻煩您有空解答一下,謝謝
回復

使用道具 舉報

ID:161164 發表于 2024-4-2 13:57 | 顯示全部樓層
主要問題就在于55行的那個while(1)
把那個while(1)拆開分析歸納后的得出三個區域
a. key()==2 : 幾微秒
b. 一堆LCD_ShowNum():幾百毫秒
c. key()==1 : 幾微秒
你覺得按鍵按下時,會在哪個區域?
當然是b
然后就進入c
基于key()里有放手死等
所以就算按下了2
進入C區域,也要等到放手才離開
結果就是a區域的key()==2永不成立
回復

使用道具 舉報

ID:1114858 發表于 2024-4-2 15:59 來自手機 | 顯示全部樓層
lkc8210 發表于 2024-4-2 13:57
主要問題就在于55行的那個while(1)
把那個while(1)拆開分析歸納后的得出三個區域
a. key()==2 : 幾微秒

謝謝您的回復,我明白了,太感謝了,困擾我好久了,謝謝
回復

使用道具 舉報

ID:1114752 發表于 2024-4-3 20:08 | 顯示全部樓層
我像個NT一樣看著評論區
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品日韩在线观看 | 久久精品亚洲精品国产欧美 | 午夜免费成人 | 免费国产视频 | 九九久久久 | 亚洲高清在线视频 | 精品亚洲一区二区三区 | 日韩在线播放网址 | 污片在线免费观看 | 免费观看成人鲁鲁鲁鲁鲁视频 | www网站在线观看 | 欧美jizzhd精品欧美巨大免费 | 欧美成人aaa级毛片在线视频 | 国产ts人妖另类 | 免费网站国产 | 国产一区二区三区久久久久久久久 | 人操人人干人 | 天堂中文在线观看 | 91婷婷韩国欧美一区二区 | 国产一区二区三区视频在线观看 | 噜噜噜噜狠狠狠7777视频 | 日韩第一夜 | 高清国产午夜精品久久久久久 | 日韩欧美国产精品一区二区三区 | 在线亚洲电影 | 亚洲欧美国产毛片在线 | 国产精品久久久久久久久久免费看 | h视频网站在线观看 | 人人爽人人草 | 亚洲日韩视频 | 国产精品伦理一区 | 91最新入口| 成人精品鲁一区一区二区 | av国产精品 | 成人在线视频一区 | 亚洲欧洲成人av每日更新 | 九色.com| 老子午夜影院 | 亚洲欧美中文日韩在线v日本 | 九九久久99 | 99精品免费久久久久久日本 |