no he logrado habilitar la librería para hacer uso de ella
A que te referis con habilitar la libreria?
------------------------
Por lo que veo del codigo, para aclarar voy a usar este (p8):
//private function
void Keypad_initializePins(){
u8 c,r;
for (r=0; r<keypad_rows; r++){
for (c=0; c<keypad_columns; c++){
//configure column pin modes and states
pinmode(columnPins[c],OUTPUT);
digitalwrite(columnPins[c],HIGH);
}
}
//configure row pin modes and states
pinmode(rowPins[r],INPUT);
digitalwrite(rowPins[r],HIGH);
}
Tenes que definir (si es que no esta definido obviamente):
- la cantidad de columnas
- la cantidad de filas
- Que pines son las columnas
- Que pines son las filas
- Que queres que te devuelva al detectar la tecla, tu "mapa" de teclado.
- Y mas que obvio incluir a libreria keymap.h (asi tenes acceso a las funciones y no debes declararlas de nuevo como el p32 - archivo .pde)
Supongamos que tenes un teclado 4x4.
Los pines de las columnas, empezando desde la primera supongamos son: 4,6,8,9
Los pines de las filas , empezado desde la primera digamos que son: 1,2,5,7
Entonces en tu main.c creas lo siguiente
unsigned char filas = 4; //Cantidad de filas
unsigned char columnas = 4; // Cantidad de columnas
unsigned char columnasPines[] = {4,6,8,9}; // Pines de las columnas
unsigned char filasPines[] = {1,2,5,7}; // Pines de las filas
char mapaTeclado[4][4] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*', '0', '#','D'}
};
Finalmente procedes a inicializar el teclado:
Keypad_init(mapaTeclado, filasPines, columnasPines, filas, columnas);
Y de alli lo usas con:
char tecla;
tecla = Keypad_getKey()
if ( tecla != NO_KEY)
{
Serial.print("presionaste la tecla: %c",&tecla);
}
------------------
El codigo que dice p32, si observas define todo eso, lo inicia y luego procede a usarlo en su archivo .pde, aunque parece tener algunas que otra opciones mas (elegir tiempo de anti-rebote, entro otras)