Nostradamus X
/
keypad
try1 with keypad
keyo.cpp@3:74062f7daedd, 2017-11-07 (annotated)
- Committer:
- nostradamus2x
- Date:
- Tue Nov 07 01:52:20 2017 +0000
- Revision:
- 3:74062f7daedd
- Parent:
- 2:05f7cf34c118
- Child:
- 4:4c7fb6a870bf
Added the code to compare with password.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nostradamus2x | 0:5151ad0261b3 | 1 | #include "mbed.h" |
nostradamus2x | 0:5151ad0261b3 | 2 | #include "Keypad.h" |
nostradamus2x | 0:5151ad0261b3 | 3 | |
nostradamus2x | 0:5151ad0261b3 | 4 | // Define your own keypad values |
nostradamus2x | 0:5151ad0261b3 | 5 | char Keytable[] = { '1', '2', '3', 'A', // r0 |
nostradamus2x | 0:5151ad0261b3 | 6 | '4', '5', '6', 'B', // r1 |
nostradamus2x | 0:5151ad0261b3 | 7 | '7', '8', '9', 'C', // r2 |
nostradamus2x | 0:5151ad0261b3 | 8 | '*', '0', '#', 'D', // r3 |
nostradamus2x | 0:5151ad0261b3 | 9 | }; |
nostradamus2x | 3:74062f7daedd | 10 | // c0 c1 c2 c3 |
nostradamus2x | 0:5151ad0261b3 | 11 | |
nostradamus2x | 0:5151ad0261b3 | 12 | uint32_t Index; |
nostradamus2x | 3:74062f7daedd | 13 | uint32_t pass = 1234,check=1,modc=1000; //password is 1234, modc is current val of mod. the value will be 10^(n-1). n is no of digits of pass |
nostradamus2x | 3:74062f7daedd | 14 | DigitalOut led1(LED_BLUE); |
nostradamus2x | 3:74062f7daedd | 15 | DigitalOut led2(LED_GREEN); |
nostradamus2x | 3:74062f7daedd | 16 | DigitalOut led3(LED_RED); |
nostradamus2x | 3:74062f7daedd | 17 | |
nostradamus2x | 0:5151ad0261b3 | 18 | uint32_t cbAfterInput(uint32_t index) { |
nostradamus2x | 0:5151ad0261b3 | 19 | Index = index; |
nostradamus2x | 3:74062f7daedd | 20 | led1=!led1; |
nostradamus2x | 3:74062f7daedd | 21 | if(check == 1) |
nostradamus2x | 3:74062f7daedd | 22 | if(pass/modc == Index) |
nostradamus2x | 3:74062f7daedd | 23 | { check = 1; |
nostradamus2x | 3:74062f7daedd | 24 | modc=modc/10; |
nostradamus2x | 3:74062f7daedd | 25 | } |
nostradamus2x | 3:74062f7daedd | 26 | else check =0; |
nostradamus2x | 3:74062f7daedd | 27 | |
nostradamus2x | 3:74062f7daedd | 28 | if(modc==0) |
nostradamus2x | 3:74062f7daedd | 29 | if(check == 1) led2=!led2; |
nostradamus2x | 3:74062f7daedd | 30 | else led3=!led3; |
nostradamus2x | 3:74062f7daedd | 31 | else; |
nostradamus2x | 3:74062f7daedd | 32 | return 0; |
nostradamus2x | 0:5151ad0261b3 | 33 | } |
nostradamus2x | 0:5151ad0261b3 | 34 | |
nostradamus2x | 0:5151ad0261b3 | 35 | int main() { |
nostradamus2x | 1:a045dce72999 | 36 | // r0 r1 r2 r3 c0 c1 c2 c3 |
nostradamus2x | 1:a045dce72999 | 37 | Keypad keypad(PTE5, PTE4, PTE3, PTE2, PTB11, PTB10, PTB9, NC); |
nostradamus2x | 0:5151ad0261b3 | 38 | keypad.attach(&cbAfterInput); |
nostradamus2x | 0:5151ad0261b3 | 39 | keypad.start(); // energize the keypad via c0-c3 |
nostradamus2x | 3:74062f7daedd | 40 | //PwmOut r(LED_RED); //for checking |
nostradamus2x | 1:a045dce72999 | 41 | |
nostradamus2x | 0:5151ad0261b3 | 42 | while (1) { |
nostradamus2x | 0:5151ad0261b3 | 43 | __wfi(); |
nostradamus2x | 0:5151ad0261b3 | 44 | printf("Interrupted\r\n"); |
nostradamus2x | 0:5151ad0261b3 | 45 | printf("Index:%d => Key:%c\r\n", Index, Keytable[Index]); |
nostradamus2x | 0:5151ad0261b3 | 46 | } |
nostradamus2x | 0:5151ad0261b3 | 47 | } |