Skip to content

yappy2000d/Keypad-Scan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

4×4 鍵盤掃描函式庫

一個高效且輕量的4×4鍵盤掃描函式庫。

特點

  • 提供更高效的按鍵掃描方法:
    • 未按下按鍵時,執行速度為傳統方式的400%。
    • 在按下按鍵時,執行速度為傳統方式的200%。
  • 每個函數皆有提供精簡的函數別名,方便使用。

使用方式

  1. 將檔案放在與主程式相同的目錄,並在程式碼中加入語句:

    #include "keypadlib.c"
  2. 預設情況下,這個函式庫使用P2作為鍵盤的接腳。如果你想使用其他接腳,請在#include語句之前使用#define來定義KEY_PORT

  3. 按鍵順序的計算方式:Row * 4 + Column。預設對應到:"0123456789ABCDEF",共16個字元。如果想更改按鍵順序,可以使用setKeyCodes()函數。

使用的更多細節請參見範例

定義

  • KEY_PORT:鍵盤的接腳,預設為P2。
  • Byteunsigned 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

其他事項

如有任何問題或建議,請聯繫作者。

About

一個高效的4×4鍵盤掃描函式庫。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages