Prueba esta combinación y dime qué obtienes :
Codigo:
#include <18F452.h>
#use delay(clock=4000000)
#use rs232(baud=9600,xmit=PIN_C0,rcv=PIN_C1)
#fuses XT, NOPROTECT, PUT, NOWDT, BROWNOUT, NOLVP, NOCPD, NOWRT
#include <lcd_4x20.c>
char opcion;
#INT_RDA
rda_isr() {
opcion=0x00;
if(kbhit()){
opcion=getc();
}
}
void main() {
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
lcd_init();
while(true) {
if(opcion!=0x00){
lcd_gotoxy(1,1);
switch(opcion){
case "1": printf(lcd_putc,"1111";
break;
case "2": printf(lcd_putc,"2222";
break;
default: printf(lcd_putc,"xxxx";
}
}
}
}
Hola Pablo, creo que todo tu problema está en esta línea:
Codigo:
#use rs232(baud=9600,xmit=PIN_C0,rcv=PIN_C1)
prueba a ponerlo de esta forma:
Codigo:
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
La interrupción RDA, solo funciona con el hard del micro.
saludos