#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
#use delay(clock=4000000)
#use standard_io(b)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
unsigned char opcion = '7';
#INT_RDA
void rda_isr() {
opcion = getch();
}
void main()
{
enable_interrupts(INT_RDA); //Activación de la interrupción
enable_interrupts(GLOBAL); //Necesario para activar la anterior
while(true) {
switch ((int)opcion - 48){
case 1:
//Marcha atras velocidad 1
printf("1");
break;
case 2:
//Marcha atras velocidad 2
printf("2");
break;
case 3:
//Marcha atras velocidad 3
printf("3");
break;
case 4:
//Marcha delante velocidad 1
printf("4");
break;
case 5:
//Marcha delante velocidad 2
printf("5");
break;
case 6:
//Marcha delante velocidad 3
printf("6");
break;
case 7:
//PARADO
printf("7");
break;
default:
printf("%c",opcion);
break;
} //switch
} //while
}
Bueno este es el codigo que por ahora he hecho y la verdad que me funciona a las mil maravillas el envio de datos hacia el PC pero me da la sensacion que no funciona la recepcion de datos, es decir, no salta la interrupcion.
¿Voy bien encaminado?