Read only one key pressed

Dependencies:   Hotboards_keypad mbed

Committer:
RomanValenciaP
Date:
Tue Mar 08 20:44:38 2016 +0000
Revision:
0:387ee84bc5dc
first release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RomanValenciaP 0:387ee84bc5dc 1
RomanValenciaP 0:387ee84bc5dc 2 #include "mbed.h"
RomanValenciaP 0:387ee84bc5dc 3 #include "Hotboards_keypad.h"
RomanValenciaP 0:387ee84bc5dc 4
RomanValenciaP 0:387ee84bc5dc 5 // Defines the keys array with it's respective number of rows & cols,
RomanValenciaP 0:387ee84bc5dc 6 // and with the value of each key
RomanValenciaP 0:387ee84bc5dc 7 char keys[ 4 ][ 4 ] =
RomanValenciaP 0:387ee84bc5dc 8 {
RomanValenciaP 0:387ee84bc5dc 9 { '1' , '2' , '3' , 'A' },
RomanValenciaP 0:387ee84bc5dc 10 { '4' , '5' , '6' , 'B' },
RomanValenciaP 0:387ee84bc5dc 11 { '7' , '8' , '9' , 'C' },
RomanValenciaP 0:387ee84bc5dc 12 { '*' , '0' , '#' , 'D' }
RomanValenciaP 0:387ee84bc5dc 13 };
RomanValenciaP 0:387ee84bc5dc 14
RomanValenciaP 0:387ee84bc5dc 15 // Defines the pins connected to the rows
RomanValenciaP 0:387ee84bc5dc 16 DigitalInOut rowPins[ 4 ] = { PA_6 , PA_7 , PB_6 , PC_7 };
RomanValenciaP 0:387ee84bc5dc 17 // Defines the pins connected to the cols
RomanValenciaP 0:387ee84bc5dc 18 DigitalInOut colPins[ 4 ] = { PA_8 , PB_10 , PB_4 , PB_5 };
RomanValenciaP 0:387ee84bc5dc 19
RomanValenciaP 0:387ee84bc5dc 20 // Creates a new keyboard with the values entered before
RomanValenciaP 0:387ee84bc5dc 21 Keypad kpd( makeKeymap( keys ) , rowPins , colPins , 4 , 4 );
RomanValenciaP 0:387ee84bc5dc 22
RomanValenciaP 0:387ee84bc5dc 23 // Configures the serial port
RomanValenciaP 0:387ee84bc5dc 24 Serial pc( USBTX , USBRX );
RomanValenciaP 0:387ee84bc5dc 25
RomanValenciaP 0:387ee84bc5dc 26 int main()
RomanValenciaP 0:387ee84bc5dc 27 {
RomanValenciaP 0:387ee84bc5dc 28 pc.printf( "Press any key: " );
RomanValenciaP 0:387ee84bc5dc 29 while(1)
RomanValenciaP 0:387ee84bc5dc 30 {
RomanValenciaP 0:387ee84bc5dc 31 // Poll the keypad to look for any activation
RomanValenciaP 0:387ee84bc5dc 32 char key = kpd.getKey( );
RomanValenciaP 0:387ee84bc5dc 33
RomanValenciaP 0:387ee84bc5dc 34 // If any key was pressed
RomanValenciaP 0:387ee84bc5dc 35 if( key )
RomanValenciaP 0:387ee84bc5dc 36 {
RomanValenciaP 0:387ee84bc5dc 37 // Display the key pressed on serial port
RomanValenciaP 0:387ee84bc5dc 38 pc.printf( "%c" , key );
RomanValenciaP 0:387ee84bc5dc 39 pc.printf( "\n\r" );
RomanValenciaP 0:387ee84bc5dc 40 }
RomanValenciaP 0:387ee84bc5dc 41 }
RomanValenciaP 0:387ee84bc5dc 42 }