dyx811 發表于 2024-1-17 22:23
總共6個按鍵位變量,我把它合在一起了,成了一個字節,只是想讓它在后面的判斷和調用方便。沒想到還有點難 ...
dyx811 發表于 2024-1-17 22:23
總共6個按鍵位變量,我把它合在一起了,成了一個字節,只是想讓它在后面的判斷和調用方便。沒想到還有點難 ...
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;
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;
wulin 發表于 2024-1-18 08:26
假設6個按鍵分別接P2.3、2.4,P1.1~1.4
#define KeyFlag P21&0x0f
Hephaestus 發表于 2024-1-18 01:43
你這代碼轉換成機器碼,執行效率跟我在地板發的代碼差了十萬八千里,好好學習吧。
18680365301 發表于 2024-1-18 15:34
void Key_Scan() //按鍵檢測 1ms調用
{
u8 i;
dyx811 發表于 2024-1-18 18:02
一定好好學習。主要是高級點的單片機還沒有咋個會呢。你發的代碼是帶指針的嗎?一時半會還理解不透。
...
dyx811 發表于 2024-1-17 22:23
總共6個按鍵位變量,我把它合在一起了,成了一個字節,只是想讓它在后面的判斷和調用方便。沒想到還有點難 ...
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 14:29
請仔細分析下我給你的優化代碼。
1:因為有這變量的初始換,才省了你代碼中的一堆else。
2:臨時變量和 ...
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
我早就告訴你了你不看。
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |