只需一步,快速開始
熱門: 51單片機 | 24小時必答區 | 單片機教程 | 單片機DIY制作 | STM32 | Cortex M3 | 模數電子 | 電子DIY制作 | 音響/功放 | 拆機樂園 | Arduino | 嵌入式OS | 程序設計
使用道具 舉報
dyx811 發表于 2024-1-17 22:23 總共6個按鍵位變量,我把它合在一起了,成了一個字節,只是想讓它在后面的判斷和調用方便。沒想到還有點難 ...
wulin 發表于 2024-1-18 08:26 假設6個按鍵分別接P2.3、2.4,P1.1~1.4 #define KeyFlag P21&0x0f
yzw846562238 發表于 2024-1-18 08:57 typedef struct { unsigned int key1 : 1;
ydatou 發表于 2024-1-18 08:40 你這段代碼可優化。節省一個全局變量,代碼也可簡短些。
yzw846562238 發表于 2024-1-18 09:19 return SsMAIN_h_KeyValue.KeyValue;
Hephaestus 發表于 2024-1-18 01:43 你這代碼轉換成機器碼,執行效率跟我在地板發的代碼差了十萬八千里,好好學習吧。
18680365301 發表于 2024-1-18 15:34 void Key_Scan() //按鍵檢測 1ms調用 { u8 i;
dyx811 發表于 2024-1-18 18:02 一定好好學習。主要是高級點的單片機還沒有咋個會呢。你發的代碼是帶指針的嗎?一時半會還理解不透。 ...
188610329 發表于 2024-1-18 23:05 sbit Temp1 = ACC^0; sbit Temp2 = ACC^1; sbit Temp3 = ACC^2;
dyx811 發表于 2024-1-18 17:22 利用了靜態變量可以不用每次都初始化da,這樣子不能做多鍵同時按下的準確判斷。
ydatou 發表于 2024-1-19 14:29 請仔細分析下我給你的優化代碼。 1:因為有這變量的初始換,才省了你代碼中的一堆else。 2:臨時變量和 ...
dyx811 發表于 2024-1-19 15:33 謝謝指點,突然恍然大悟了!!我居然把把&運算算錯了。。。光想著怎么復原該Bit位了。 這樣子確實精簡了 ...
查看全部評分
ydatou 發表于 2024-1-19 16:36 再看了下樓主代碼,當KeyFlag 不為1時,要返回上一次的key值,這確實需要一個全局變量,我給的優化代碼沒 ...
dyx811 發表于 2024-1-20 21:22 bdta太好用了!不光完全實現了一堆位變量的整合,經過實驗,不光實現了既定要求,程序上還節省了大量空間 ...
TTQ001 發表于 2024-1-21 09:06 一個字節由 8 位組成。 字節的按位操作廣泛用于數字變量,例如開關狀態、標志和數字輸出。
Hephaestus 發表于 2024-1-20 21:38 我早就告訴你了你不看。
本版積分規則 發表回復 回帖后跳轉到最后一頁
手機版|小黑屋|51黑電子論壇 | 管理員QQ:125739409;技術交流QQ群281945664
Powered by 單片機教程網