multiple keys

Dependencies:   Hotboards_keypad mbed

Files at this revision

API Documentation at this revision

Comitter:
RomanValenciaP
Date:
Tue Mar 08 21:33:20 2016 +0000
Parent:
0:aecea5ee7e68
Commit message:
comments

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r aecea5ee7e68 -r 2ca8747d39ed main.cpp
--- a/main.cpp	Tue Mar 08 19:31:58 2016 +0000
+++ b/main.cpp	Tue Mar 08 21:33:20 2016 +0000
@@ -5,6 +5,8 @@
 
 using std::string;
 
+// Se define el arreglo keys con su respectivo número de renglones
+// y columnas, y con el valor de cada una de las teclas
 char keys[ 4 ][ 4 ] =
 {
     { '1' , '2' , '3' , 'A' },
@@ -13,11 +15,15 @@
     { '*' , '0' , '#' , 'D' }
 };
 
+// Se definen los pines que conectan a las filas
 DigitalInOut rowPins[ 4 ] = { PA_6 , PA_7 , PB_6 , PC_7 };
+// Se definen los pines que conectan a las columnas
 DigitalInOut colPins[ 4 ] = { PA_8 , PB_10 , PB_4 , PB_5 };
 
+// Se crea un nuevo teclado con los valores anteriores
 Keypad kpd( makeKeymap( keys ) , rowPins , colPins , 4 , 4 );
 
+// Se configura el puerto serial
 Serial pc( USBTX , USBRX );
 
 int i;
@@ -27,21 +33,27 @@
     string msg;
     while(1)
     {
+        // Se llenará el arreglo kpd.key[ ] con las teclas que se presionen,
+        // y además regresará un (1) si se presionó una o mas teclas.
         if( kpd.getKeys( ) )
         {
+            // Se revisa la lista de teclas
             for( i = 0 ; i <= LIST_MAX ; i++ )
             {
+                //Se revisa si alguna tecla cambio su estado
                 if( kpd.key[ i ].stateChanged )
                 {
+                    // Se reporta el estado de la tecla activa:
+                    // IDLE, PRESSED, HOLD, o RELEASED
                     switch( kpd.key[ i ].kstate )
                     {
                         case PRESSED:
-                            msg = " PRESSED. ";
+                            msg = " PRESSED. "; // Se presionó
                             break;
-                        case HOLD:
+                        case HOLD:              // Está presionada
                             msg = " HOLD. ";
                             break;
-                        case RELEASED:
+                        case RELEASED:          // Se soltó
                             msg = " RELEASED. ";
                             break;
                         case IDLE:
@@ -50,6 +62,7 @@
                         default:
                             break;
                     }
+                    // Se manda por serial el estado de la tecla presionada
                     pc.printf( "Key " );
                     pc.printf( "%c" , kpd.key[ i ].kchar );
                     pc.printf( "%s" , msg.c_str() );