Hola a todos, estoy intentando programar una aplicacion comun basado en teclado(ingresar un password y validarlo) para el pic 18f4550, pero tengo un comportamiento extraño de la funcion kbd_getc() al simularlo en PROTEUS, uso el compilador ccs como plugin de MPLABX, uso tambien la libreria KBD.C y he descomentado la linea para uso del puerto B, ya que en el puerto D funciona un LCD de 16x2, al correr el programa, sin que conecte nada a los pines del puerto B(pines al aire) la funcion kbd_getc() recibe caracteres y escribe en el lcd '*' ,no se por que? este es el programa:
#include <18f4550.h>
#include <lcd.c>
#include <KBD.C>
#fuses PUT,HS,NOPROTECT,NOWDT,NOLVP
#use delay(clock=10000000)
void main()
{
char caracter;
char pass[5];
int i;
lcd_init();
kbd_init();
delay_ms(100);
//while(true){
lcd_gotoxy(4,1);
lcd_putc("Probando");
lcd_gotoxy(2,2);
lcd_putc("Teclado...");
delay_ms(2000);
lcd_clear();//}
i = 0;
while(true)
{
lcd_putc("Ingrese clave:");
while(i <= 4)
{
caracter = kbd_getc();
pass[i] = caracter;
i++;
lcd_gotoxy(i,2);
lcd_putc('*');
delay_ms(200);
}
}
}
demas esta decir que al conectar el teclado o switches al pic el programa se comporta igual, porfavor si me pueden asesorar sobre probables errores en el programa(debe ser el programa!, supongo)