![]() |
吳鉤霜雪 發表于 2022-5-19 13:59 應該說,有符號變量,取反后+1,就是正負數,所以你要直接正負數變化,可以tempvalue = ~tempvalue +1; 你具體程序如何,我不知道,我上面只是寫個例子給你,給你參考后加入你的程序。 |
188610329 發表于 2022-5-15 16:59 是不是應該只把TempValue的符號位取反? |
188610329 發表于 2022-5-15 16:59 TempValue = ~TempValue; 把溫度值各位直接取反就得到對應的負值或正值了嗎? |
wulin 發表于 2022-5-15 22:28 我是這樣想的:假如我要設置100度,就不需要按那么多次了,所以我設計那樣的按鍵電路。假如是10個數字0~9對應的按鍵電路更復雜,所以我沒考慮。我問的問題是假如就按我那樣的按鍵電路來編寫程序,應該怎樣編? |
吳鉤霜雪 發表于 2022-5-15 13:30 定義char型變量,數據范圍-128~127。只需對變量的最高位判讀即可,無需設置符號鍵。給你一個示例參考。LED/LCD兼容。 ![]() |
先貼代碼 |
#define KeyTen 0x10 #define KeyOne 0x11 #define KeySign 0x12 #define KeySett 0x14 if(Press) { Press = 0; if(Setting_Menu) { switch(KeyValue) { case KeySett: Setting_Menu = 0; break; case KeyTen: TempValue += 10; break; case KeyOne: TempValue ++; break; case KeySign: TempValue = ~TempValue; break; default: break; } else Setting_Menu = 1; } |
設置幾個標志位,按下求反標志位,然后判斷標志位狀態.跟據標志位狀態決定后面要做什么動作 |
IdeaMing 發表于 2022-5-15 12:39 我想設置溫度:按設置鍵一下,進入設置溫度功能,如果設置-23度,則按符號位1下,十位2下,個位3下。正數不按符號位。最后再按設置鍵退出設置溫度功能。 我實現不出才來求助的。 |
正常編寫就可以 |
就正常編寫,還能怎么編寫? |