Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of study_step0 by
key_5x5.cpp@5:53fb9eed6b67, 2021-02-18 (annotated)
- Committer:
- kenjiArai
- Date:
- Thu Feb 18 08:15:37 2021 +0000
- Revision:
- 5:53fb9eed6b67
- Parent:
- 4:0564f82dd0ef
run on mbed-os6.6.0 (online compiler)
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| kenjiArai | 2:aa6fdecebf2b | 1 | /* |
| kenjiArai | 2:aa6fdecebf2b | 2 | * Mbed Application program |
| kenjiArai | 2:aa6fdecebf2b | 3 | * |
| kenjiArai | 5:53fb9eed6b67 | 4 | * Copyright (c) 2020,'21 Kenji Arai / JH1PJL |
| kenjiArai | 2:aa6fdecebf2b | 5 | * http://www7b.biglobe.ne.jp/~kenjia/ |
| kenjiArai | 2:aa6fdecebf2b | 6 | * https://os.mbed.com/users/kenjiArai/ |
| kenjiArai | 2:aa6fdecebf2b | 7 | * Created: April 5th, 2020 |
| kenjiArai | 5:53fb9eed6b67 | 8 | * Revised: February 18th, 2021 |
| kenjiArai | 2:aa6fdecebf2b | 9 | */ |
| kenjiArai | 2:aa6fdecebf2b | 10 | |
| kenjiArai | 2:aa6fdecebf2b | 11 | // Pre-selection -------------------------------------------------------------- |
| kenjiArai | 2:aa6fdecebf2b | 12 | #include "select_example.h" |
| kenjiArai | 2:aa6fdecebf2b | 13 | //#define KEY5X5 |
| kenjiArai | 2:aa6fdecebf2b | 14 | #ifdef KEY5X5 |
| kenjiArai | 2:aa6fdecebf2b | 15 | |
| kenjiArai | 2:aa6fdecebf2b | 16 | // Include -------------------------------------------------------------------- |
| kenjiArai | 2:aa6fdecebf2b | 17 | #include "mbed.h" |
| kenjiArai | 2:aa6fdecebf2b | 18 | #include "Keypad.h" |
| kenjiArai | 2:aa6fdecebf2b | 19 | |
| kenjiArai | 2:aa6fdecebf2b | 20 | // Definition ----------------------------------------------------------------- |
| kenjiArai | 5:53fb9eed6b67 | 21 | #if (MBED_MAJOR_VERSION == 2) || (MBED_MAJOR_VERSION == 5) |
| kenjiArai | 5:53fb9eed6b67 | 22 | # define WAIT_100MS() {wait_us(100000);} |
| kenjiArai | 5:53fb9eed6b67 | 23 | #else |
| kenjiArai | 5:53fb9eed6b67 | 24 | # define WAIT_100MS() {ThisThread::sleep_for(100ms);} |
| kenjiArai | 5:53fb9eed6b67 | 25 | #endif |
| kenjiArai | 2:aa6fdecebf2b | 26 | |
| kenjiArai | 2:aa6fdecebf2b | 27 | // Object --------------------------------------------------------------------- |
| kenjiArai | 2:aa6fdecebf2b | 28 | DigitalOut my_led(LED1); |
| kenjiArai | 2:aa6fdecebf2b | 29 | // X Y Z W V A B C D E OUT(XYZWV), IN(ABCDE) |
| kenjiArai | 2:aa6fdecebf2b | 30 | Keypad key(D11, D10, D9, D8, D7, D6, D5, D4, D3, D2); |
| kenjiArai | 2:aa6fdecebf2b | 31 | |
| kenjiArai | 2:aa6fdecebf2b | 32 | // RAM ------------------------------------------------------------------------ |
| kenjiArai | 2:aa6fdecebf2b | 33 | |
| kenjiArai | 2:aa6fdecebf2b | 34 | // ROM / Constant data -------------------------------------------------------- |
| kenjiArai | 2:aa6fdecebf2b | 35 | // X*A = *, X*B = G, X*C = B, X*D = 6, X*E = 1 |
| kenjiArai | 2:aa6fdecebf2b | 36 | // Y*A = /, Y*B = H, Y*C = C, Y*D = 7, Y*E = 2 |
| kenjiArai | 2:aa6fdecebf2b | 37 | // Z*A = ., Z*B = I, Z*C = D, Z*D = 8, Z*E = 3 |
| kenjiArai | 2:aa6fdecebf2b | 38 | // W*A = +, W*B = J, W*C = E, W*D = 9, W*E = 4 |
| kenjiArai | 2:aa6fdecebf2b | 39 | // V*A = -, V*B = =, V*C = F, V*D = A, V*E = 5 |
| kenjiArai | 2:aa6fdecebf2b | 40 | // key_table[0]=? is not used! |
| kenjiArai | 2:aa6fdecebf2b | 41 | const char *const key_table = "?*GB61/HC72.ID83+JE94-=FA5"; |
| kenjiArai | 2:aa6fdecebf2b | 42 | // 1234567890123456789012345 |
| kenjiArai | 2:aa6fdecebf2b | 43 | |
| kenjiArai | 2:aa6fdecebf2b | 44 | // Function prototypes -------------------------------------------------------- |
| kenjiArai | 5:53fb9eed6b67 | 45 | extern void print_revision(void); |
| kenjiArai | 2:aa6fdecebf2b | 46 | |
| kenjiArai | 2:aa6fdecebf2b | 47 | //------------------------------------------------------------------------------ |
| kenjiArai | 2:aa6fdecebf2b | 48 | // Control Program |
| kenjiArai | 2:aa6fdecebf2b | 49 | //------------------------------------------------------------------------------ |
| kenjiArai | 2:aa6fdecebf2b | 50 | int main() |
| kenjiArai | 2:aa6fdecebf2b | 51 | { |
| kenjiArai | 2:aa6fdecebf2b | 52 | uint32_t key_num; |
| kenjiArai | 2:aa6fdecebf2b | 53 | uint32_t counter = 0; |
| kenjiArai | 2:aa6fdecebf2b | 54 | |
| kenjiArai | 5:53fb9eed6b67 | 55 | print_revision(); |
| kenjiArai | 4:0564f82dd0ef | 56 | printf("Start Key-Pad test 5x5 keys\r\n"); |
| kenjiArai | 2:aa6fdecebf2b | 57 | while(true) { |
| kenjiArai | 2:aa6fdecebf2b | 58 | while ((key_num = key.read()) != 0) { |
| kenjiArai | 4:0564f82dd0ef | 59 | printf("%2u:[%2d] %c\r\n", |
| kenjiArai | 2:aa6fdecebf2b | 60 | counter++, key_num, *(key_table + key_num)); |
| kenjiArai | 2:aa6fdecebf2b | 61 | } |
| kenjiArai | 5:53fb9eed6b67 | 62 | WAIT_100MS(); |
| kenjiArai | 2:aa6fdecebf2b | 63 | } |
| kenjiArai | 2:aa6fdecebf2b | 64 | } |
| kenjiArai | 2:aa6fdecebf2b | 65 | |
| kenjiArai | 2:aa6fdecebf2b | 66 | #endif // #ifdef KEY5X5 |
