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
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 #include "PCF8574.h" 00003 00004 #define BAUD 9600 00005 InterruptIn event(p12); 00006 Serial pc(USBTX, USBRX); 00007 PCF8574 io(p9,p10,0x40); 00008 int data1 , data2; 00009 00010 void display(int data) 00011 { 00012 switch (data) 00013 { 00014 case 238: pc.printf("SW1 \n\r"); break; 00015 case 237: pc.printf("SW2 \n\r"); break; 00016 case 235: pc.printf("SW3 \n\r"); break; 00017 case 231: pc.printf("SW4 \n\r"); break; 00018 case 222: pc.printf("SW5 \n\r"); break; 00019 case 221: pc.printf("SW6 \n\r"); break; 00020 case 219: pc.printf("SW7 \n\r"); break; 00021 case 215: pc.printf("SW8 \n\r"); break; 00022 case 190: pc.printf("SW9 \n\r"); break; 00023 case 189: pc.printf("SW10 \n\r"); break; 00024 case 187: pc.printf("SW11 \n\r"); break; 00025 case 183: pc.printf("SW12 \n\r"); break; 00026 case 126: pc.printf("SW13 \n\r"); break; 00027 case 125: pc.printf("SW14 \n\r"); break; 00028 case 123: pc.printf("SW15 \n\r"); break; 00029 case 119: pc.printf("SW16 \n\r"); break; 00030 } 00031 } 00032 00033 void trigger() 00034 { 00035 //event.fall(NULL); 00036 //printf("triggered!\n"); 00037 io.write(0x0f); 00038 data1 = io.read(); 00039 00040 io.write(0xf0); 00041 data2 = io.read(); 00042 00043 display(data1+data2); 00044 //wait(0.2); 00045 //event.fall(&trigger); 00046 } 00047 00048 int main() 00049 { 00050 pc.printf("Start\n\r"); 00051 event.fall(&trigger); 00052 //event.rise(&trigger); 00053 while(1) 00054 { 00055 00056 } 00057 }
Generated on Wed Jul 13 2022 20:50:48 by 1.7.2