hola a todos hize el sig codigo, tengo un teclado y una lcd y salidas digitales, pero no puedo hacer que se active una salida al teclear dos numeros solo funciona con uno solo, el problema esta en que el switch case solo reconoce del 0-9 y a-z pero yo necesito por ejemplo '15' y ahi esta el error, alguien que me pueda ayudar.
Código:
#include "18F2525.h"
#FUSES XT, NOWDT, NOPROTECT, NOPUT
#use delay(clock = 12000000)
#include "flex_lcd.c"
#include "kbd4.c"
#include "stdio.h"
#include <string.h>
void main() {
char k,c;
char b[2];
//#define toint(c) ((int)((c)-'0'))
lcd_init();
kbd_init();
while (TRUE) {
c=kbd_getc();
delay_ms(50);
k=kbd_getc();
b=strcat (c,k);//junto dos char en una.
//k=q;
if(b!=0)
switch (b)
{
case '3' :
lcd_putc(b);
output_high(PIN_A0);output_low(PIN_A1);
output_low(PIN_A2);
output_low(PIN_A3);
output_low(PIN_A4);
output_low(PIN_A5);break;
case '4' :
lcd_putc(b);
output_high(PIN_A1);output_low(PIN_A0);
output_low(PIN_A2);
output_low(PIN_A3);
output_low(PIN_A4);
output_low(PIN_A5);break;
case '9' :
lcd_putc(b);
output_high(PIN_A2);output_low(PIN_A1);
output_low(PIN_A0);
output_low(PIN_A3);
output_low(PIN_A4);
output_low(PIN_A5);break;
case '5' :
lcd_putc(b);
output_high(PIN_A3);output_low(PIN_A1);
output_low(PIN_A2);
output_low(PIN_A0);
output_low(PIN_A4);
output_low(PIN_A5);break;
case '15' : //aqui marca error
lcd_putc(b);
output_high(PIN_A4);output_low(PIN_A1);
output_low(PIN_A2);
output_low(PIN_A3);
output_low(PIN_A0);
output_low(PIN_A5);break;
case '18' : //aqui marca error
lcd_putc(b);
output_high(PIN_A5);output_low(PIN_A1);
output_low(PIN_A2);
output_low(PIN_A3);
output_low(PIN_A4);
output_low(PIN_A0);break;
case '*' :
lcd_putc('\f');
output_low(PIN_A0);
output_low(PIN_A1);
output_low(PIN_A2);
output_low(PIN_A3);
output_low(PIN_A4);
output_low(PIN_A5);break;
}
}
}
Última edición por un moderador: