void main(){
while(i<1){
tecla=kbd_getc();
if (tecla!= 0){
if(tecla!="A"){
printf(lcd_putc,"%c", tecla);
}
if (tecla=="A"){
lcd_putc("VALOR INGRESADO");
i=1;
}
}
}
También, por un funcionamiento correcto te recomiendo que una vez que has leído la tecla y has utilizado la opción, borres la variable. De no ser así, esta condición if (tecla!= 0) siempre se cumpliría.No ya que:
Hola, soy nueva en el foro y he tenido un problema que se me ha hecho complicado resolver.
Resulta que tengo un programa para leer una tecla desde el keypad y mostrarlo en la lcd, con dos condiciones para cuando es A y para cuando no es A, pero solo ejecuta una de las dos y a la segunda nunca entra, aún cuando presiono la tecla A en el keypad la muestra normalmente en la LCD y no realiza la sentencia, agradecería su ayuda.
18F4550
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Código: [Seleccionar]#fuses HS,MCLR,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,NOVREGEN,NOPBADEN,XT,NOWDT,PUT,BROWNOUT,NOLVP
#use delay(clock=20000000)
#include <LCD_FLEX.c>
#define use_porta_lcd_flex TRUE
#define use_portb_kbd TRUE
#include <kbd.c>
#include <stdlib.h>
#include <stdio.h>
char tecla;
int i=0;
int j=0; //Inicializamos y declaramos la variable j como entero y de valor 0;
void inicio(){
lcd_init();
port_b_pullups(TRUE);
lcd_gotoxy(1,1);
lcd_putc(" INICIO");
delay_ms(1000);
lcd_putc("\f");
lcd_putc("NUMERO:");
lcd_gotoxy(1,2);
lcd_putc("(A) --> GUARDAR");
lcd_gotoxy(7,1);
kbd_init();
while(i<1){
tecla=kbd_getc();
if (tecla!= 0){
if(tecla!="A"){
printf(lcd_putc,"%c", tecla);
}
if (tecla=="A"){
lcd_putc("VALOR INGRESADO");
j=1; //Le fijamos el valor j=1;
//si lo que quieres es crear un contador para ver las veces que has pintado la A.
//j=j+1;
}
}
}
}
void main(){
inicio();
}