PCF8574 I2C to GPIO interface IC to 4x4 matrix keypad and access the 16 keys for different purposes

Dependencies:   PCF8574 mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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 }