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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1344|回復: 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

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
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){...}
這種寫法
回復

使用道具 舉報

5#
ID:1114858 發表于 2024-4-1 22:36 | 只看該作者
lkc8210 發表于 2024-4-1 22:14
代碼邏輯問題
每一次主循環里,key()函數只可運行一次
不要有類似

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

使用道具 舉報

6#
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;}這樣是不是也行
回復

使用道具 舉報

7#
ID:1114858 發表于 2024-4-2 09:39 來自手機 | 只看該作者
xiaobendan001 發表于 2024-4-2 07:39
例如char t;
t = key();
if(t==1);

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

使用道具 舉報

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

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

使用道具 舉報

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

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

使用道具 舉報

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

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

使用道具 舉報

11#
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永不成立
回復

使用道具 舉報

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

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

使用道具 舉報

13#
ID:1114752 發表于 2024-4-3 20:08 | 只看該作者
我像個NT一樣看著評論區
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91干b| 精品一区二区三区四区外站 | 国产乱一区二区三区视频 | 亚洲 欧美 另类 日韩 | 欧美伊人久久久久久久久影院 | 婷婷丁香激情 | 亚洲www啪成人一区二区 | 91免费版在线观看 | 龙珠z在线观看 | 亚洲综合热 | 国产伦精品一区二区三毛 | 欧美日韩国产精品一区 | 亚洲免费视频网址 | 日本三级网| 免费观看av网站 | 亚洲精品一区二区三区免 | 国产精品久久一区二区三区 | 国产精品精品3d动漫 | 中文成人在线 | 高清国产一区二区 | 久久av网站 | 国产成人aⅴ | 亚洲资源在线 | 欧美视频 | 婷婷99| 综合色在线 | 久久久久久久久久久一区二区 | 国产精品免费看 | 欧美精品一区二区三区在线播放 | 欧美日韩免费一区二区三区 | 久久久精品久久久 | 日韩看片 | 国产一区二区影院 | 日本久久一区二区三区 | 国产2区 | 91性高湖久久久久久久久_久久99 | 久久久久www | 久久成人精品视频 | 久久久亚洲一区 | 一级毛片免费完整视频 | 鲁视频|