Aslam Ahamed
/
PCF8574_I2C_4x4_Keypad_interface
PCF8574 I2C to GPIO interface IC to 4x4 matrix keypad and access the 16 keys for different purposes
main.cpp@0:a12361c5f212, 2015-05-20 (annotated)
- Committer:
- aslam
- Date:
- Wed May 20 10:34:30 2015 +0000
- Revision:
- 0:a12361c5f212
PCF8574 interface IC (I2C to GPIO) to 4x4 matrix keypad
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
aslam | 0:a12361c5f212 | 1 | #include "mbed.h" |
aslam | 0:a12361c5f212 | 2 | #include "PCF8574.h" |
aslam | 0:a12361c5f212 | 3 | |
aslam | 0:a12361c5f212 | 4 | #define BAUD 9600 |
aslam | 0:a12361c5f212 | 5 | InterruptIn event(p12); |
aslam | 0:a12361c5f212 | 6 | Serial pc(USBTX, USBRX); |
aslam | 0:a12361c5f212 | 7 | PCF8574 io(p9,p10,0x40); |
aslam | 0:a12361c5f212 | 8 | int data1 , data2; |
aslam | 0:a12361c5f212 | 9 | |
aslam | 0:a12361c5f212 | 10 | void display(int data) |
aslam | 0:a12361c5f212 | 11 | { |
aslam | 0:a12361c5f212 | 12 | switch (data) |
aslam | 0:a12361c5f212 | 13 | { |
aslam | 0:a12361c5f212 | 14 | case 238: pc.printf("SW1 \n\r"); break; |
aslam | 0:a12361c5f212 | 15 | case 237: pc.printf("SW2 \n\r"); break; |
aslam | 0:a12361c5f212 | 16 | case 235: pc.printf("SW3 \n\r"); break; |
aslam | 0:a12361c5f212 | 17 | case 231: pc.printf("SW4 \n\r"); break; |
aslam | 0:a12361c5f212 | 18 | case 222: pc.printf("SW5 \n\r"); break; |
aslam | 0:a12361c5f212 | 19 | case 221: pc.printf("SW6 \n\r"); break; |
aslam | 0:a12361c5f212 | 20 | case 219: pc.printf("SW7 \n\r"); break; |
aslam | 0:a12361c5f212 | 21 | case 215: pc.printf("SW8 \n\r"); break; |
aslam | 0:a12361c5f212 | 22 | case 190: pc.printf("SW9 \n\r"); break; |
aslam | 0:a12361c5f212 | 23 | case 189: pc.printf("SW10 \n\r"); break; |
aslam | 0:a12361c5f212 | 24 | case 187: pc.printf("SW11 \n\r"); break; |
aslam | 0:a12361c5f212 | 25 | case 183: pc.printf("SW12 \n\r"); break; |
aslam | 0:a12361c5f212 | 26 | case 126: pc.printf("SW13 \n\r"); break; |
aslam | 0:a12361c5f212 | 27 | case 125: pc.printf("SW14 \n\r"); break; |
aslam | 0:a12361c5f212 | 28 | case 123: pc.printf("SW15 \n\r"); break; |
aslam | 0:a12361c5f212 | 29 | case 119: pc.printf("SW16 \n\r"); break; |
aslam | 0:a12361c5f212 | 30 | } |
aslam | 0:a12361c5f212 | 31 | } |
aslam | 0:a12361c5f212 | 32 | |
aslam | 0:a12361c5f212 | 33 | void trigger() |
aslam | 0:a12361c5f212 | 34 | { |
aslam | 0:a12361c5f212 | 35 | //event.fall(NULL); |
aslam | 0:a12361c5f212 | 36 | //printf("triggered!\n"); |
aslam | 0:a12361c5f212 | 37 | io.write(0x0f); |
aslam | 0:a12361c5f212 | 38 | data1 = io.read(); |
aslam | 0:a12361c5f212 | 39 | |
aslam | 0:a12361c5f212 | 40 | io.write(0xf0); |
aslam | 0:a12361c5f212 | 41 | data2 = io.read(); |
aslam | 0:a12361c5f212 | 42 | |
aslam | 0:a12361c5f212 | 43 | display(data1+data2); |
aslam | 0:a12361c5f212 | 44 | //wait(0.2); |
aslam | 0:a12361c5f212 | 45 | //event.fall(&trigger); |
aslam | 0:a12361c5f212 | 46 | } |
aslam | 0:a12361c5f212 | 47 | |
aslam | 0:a12361c5f212 | 48 | int main() |
aslam | 0:a12361c5f212 | 49 | { |
aslam | 0:a12361c5f212 | 50 | pc.printf("Start\n\r"); |
aslam | 0:a12361c5f212 | 51 | event.fall(&trigger); |
aslam | 0:a12361c5f212 | 52 | //event.rise(&trigger); |
aslam | 0:a12361c5f212 | 53 | while(1) |
aslam | 0:a12361c5f212 | 54 | { |
aslam | 0:a12361c5f212 | 55 | |
aslam | 0:a12361c5f212 | 56 | } |
aslam | 0:a12361c5f212 | 57 | } |