buen dia a todos.
tengo un ploblema que no he podido resolver, quisiera que ustedes me orientaran.
el proble radica en que el pic no respeta la habilitacion/desabilitacion de las interrupciones.
enseguida parte de mi codigo:
#int_rda
void serial_isr() // Interrupcion recepcion serie USART
{
rcvchar=0x00; //inicializo el caracter recibido
if(kbhit()) //si hay algo pendiente por recibir
{
rcvchar=getchar(); // lo descargo
addcbuff(rcvchar); //lo añado al buffer
}
return;
}
void main()
{
disable_interrupts(global); //
disable_interrupts(int_rda); //
//
instruccion x; //
intruccion x+1; // Son intrucciones ajenas a la recepcion de mensajes por la usart. // en este lapso no me interesa guardar los datos que me estan llegando.
intruccion x+n; //
enable_interrupts(global);
enable_interrupts(int_rda); // de aqui en adelante si me interesa recibir lo que se me manda.
instruccion y; //Este lapso de tiempo es el que me interesa para que el pic empiese a recibir lo que se le manda.
intruccion y+1; // Son intrucciones ajenas a la recepcion de mensajes por la usart.
intruccion y+n;
int i;
for(i=0; i<=85 ;i++) //A qui solo muestro en una lcd lo que me llega al pic.
{
printf(lcd_putc,"\fcbuff= %c",cbuff);
delay_ms(2000);
}
printf(lcd_putc,"\f%s",cbuff);
}
el problema que solo se muestra codigos que me llegan al pic, pero lo que no entiendo de esto, es que son caracteres que me llegan cuando tengo desabilitado las interrupciones:
disable_interrupts(global);
disable_interrupts(int_rda);
pero yo supongo que el pic actua como sino respetara estas intrucciones. que estoy haciendo mal.
si no quedo claro y necesitan mas datos para entenderme mejor por favor aganmelo saber.
agradesco cualquier tipo de ayuda que me puedan dar.
saludos a todos.