一個高效且輕量的4×4鍵盤掃描函式庫。
- 提供更高效的按鍵掃描方法:
- 未按下按鍵時,執行速度為傳統方式的400%。
- 在按下按鍵時,執行速度為傳統方式的200%。
每個函數皆有提供精簡的函數別名,方便使用。
-
將檔案放在與主程式相同的目錄,並在程式碼中加入語句:
#include "keypadlib.c"
-
預設情況下,這個函式庫使用P2作為鍵盤的接腳。如果你想使用其他接腳,請在
#include
語句之前使用#define
來定義KEY_PORT
。 -
按鍵順序的計算方式:Row * 4 + Column。預設對應到:"0123456789ABCDEF",共16個字元。如果想更改按鍵順序,可以使用
setKeyCodes()
函數。
使用的更多細節請參見範例。
KEY_PORT
:鍵盤的接腳,預設為P2。Byte
:unsigned char
的別名。
以下是這個函式庫提供的主要函數:
-
void key_setKeys(char *newKeyCodes)
: 用於更改按鍵順序。範例:更改按鍵順序
char KeyCodes[] = "FEDCBA0987654321"; key_setKeys(KeyCodes);
-
Byte key_scan(void)
: 讀取按鍵,回傳1~16,分別對應到16個按鍵,若無按鍵按下則回傳KEY_NULL
。範例:持續等待,直到任一個按鍵被按下
while(!key_scan()); /* continue */
-
char key_check(void)
: 回傳當前壓著的按鍵,若無按鍵按下則回傳KEY_NULL
。範例:檢查A鍵是否被按下。
if(key_check() == 'A') { /* more codes here */ }
-
char key_getChar(void)
: 讀取按鍵,並等待直到按鍵放開後,再回傳。範例:輸入一個字元並將其存入變數「key」中。
char ch = key_getChar();
-
char key_waitFor(char c)
: 持續等待直到特定鍵被釋放。範例:等待直到「=」被按下,之後將其發送出去。
char ch = key_until('='); uart_putch(ch);
-
Byte key_getByte(void)
: 讀取一個Byte(按兩字鍵盤,分別為高低各四個位元) -
unsigned int key_getWord
: 讀取一個Word。 -
unsigned int key_getInt(void)
: 輸入任一個十進位數字,按下任一非數字鍵,回傳一個int(int的最大範圍為65536)。
- 作者:LSweetSour
- 最後編輯:2023/11/27
- 授權方式:MIT License
如有任何問題或建議,請聯繫作者。