Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yappy2000d/keypad-scan
一個高效的4×4鍵盤掃描函式庫。
https://github.com/yappy2000d/keypad-scan
Last synced: about 7 hours ago
JSON representation
一個高效的4×4鍵盤掃描函式庫。
- Host: GitHub
- URL: https://github.com/yappy2000d/keypad-scan
- Owner: yappy2000d
- License: mit
- Created: 2023-11-01T18:05:39.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-27T03:27:37.000Z (12 months ago)
- Last Synced: 2023-11-28T01:30:09.228Z (12 months ago)
- Language: C
- Size: 45.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
- License: LICENSE
Awesome Lists containing this project
README
# 4×4 鍵盤掃描函式庫
一個高效且輕量的4×4鍵盤掃描函式庫。## 特點
- 提供更高效的按鍵掃描方法:
+ 未按下按鍵時,執行速度為傳統方式的400%。
+ 在按下按鍵時,執行速度為傳統方式的200%。
- ~~每個函數皆有提供精簡的函數別名,方便使用。~~## 使用方式
1. 將檔案放在與主程式相同的目錄,並在程式碼中加入語句:
```c
#include "keypadlib.c"
```2. 預設情況下,這個函式庫使用P2作為鍵盤的接腳。如果你想使用其他接腳,請在`#include`語句之前使用`#define`來定義`KEY_PORT`。
3. 按鍵順序的計算方式:Row * 4 + Column。預設對應到:"0123456789ABCDEF",共16個字元。如果想更改按鍵順序,可以使用`setKeyCodes()`函數。
使用的更多細節請參見[範例](/example/)。
## 定義
- `KEY_PORT`:鍵盤的接腳,預設為P2。
- `Byte`:`unsigned char`的別名。## 函數
以下是這個函式庫提供的主要函數:
- `void key_setKeys(char *newKeyCodes)`: 用於更改按鍵順序。
> 範例:更改按鍵順序
> ```c
> char KeyCodes[] = "FEDCBA0987654321";
> key_setKeys(KeyCodes);
> ```- `Byte key_scan(void)`: 讀取按鍵,回傳1~16,分別對應到16個按鍵,若無按鍵按下則回傳`KEY_NULL`。
> 範例:持續等待,直到任一個按鍵被按下
> ```c
> while(!key_scan());
> /* continue */
> ```- `char key_check(void)`: 回傳當前壓著的按鍵,若無按鍵按下則回傳`KEY_NULL`。
> 範例:檢查A鍵是否被按下。
> ```c
> if(key_check() == 'A') {
> /* more codes here */
> }
> ```- `char key_getChar(void)`: 讀取按鍵,並等待直到按鍵放開後,再回傳。
> 範例:輸入一個字元並將其存入變數「key」中。
> ```c
> char ch = key_getChar();
> ```- `char key_waitFor(char c)`: 持續等待直到特定鍵被釋放。
> 範例:等待直到「=」被按下,之後將其發送出去。
> ```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## 其他事項
如有任何問題或建議,請聯繫作者。