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