Hola,la libreria incorporada KBD.C es una cagada a mi tampoco me funciona no me dio la gana estudiarla asi ke me hice una funcion para escanear un teclado de 4x3,creo ke por ahi pasa el problema,ademas en el if yo usaria un | en vez de ||,y mas bien usaria un printf(lcd_putc,"%c",tecla) dentro de la misma funcion o printf(lcd_putc,"%c",escan_teclado()) aca dejo el código,chau
char escan_teclado()
{
int tecla;
int i=0;
boolean teclapulsada=FALSE;
int vect[5]={0x0E,0x0D,0x0B,0x07,0};
char matriz_teclado[4][3]={'1','2','3','4','5','6','7','8','9','*','0','#'};
while(i<4|teclapulsada==FALSE)
{
portb=vect;
if(!input(PIN_B4))
{
tecla=0;
tecla=matriz_teclado[tecla];
teclapulsada=TRUE;
}
if(!input(PIN_B5))
{
tecla=1;
tecla=matriz_teclado[tecla];
teclapulsada=TRUE;
}
if(!input(PIN_B6))
{
tecla=2;
tecla=matriz_teclado[tecla];
teclapulsada=TRUE;
}
i++;
}
teclapulsada=FALSE;
return(tecla);
}