TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: cucu en 16 de Febrero de 2009, 10:35:36
-
hola, estoy teniendo unos problemillas con las interrupciones. yo quiero que cuando me interrumpe la recepción por puerto serie transmita unos datos por puerto serie, pero hay algo que me interrumpe mientras lo hago y soy incapaz de verlo:
#pragma interruptlow HighISR
void HighISR (void)
{
UserInterruptHandler();
}
/************************************/
/* Interrupt Vectors */
/************************************/
#pragma code highVector=0x08
void HighVector (void)
{
_asm goto HighISR _endasm
}
#pragma code /* return to default code section */
#pragma code lowhVector=0x18
void LowVector (void)
{
_asm goto HighISR _endasm
}
#pragma code /* return to default code section */
Y luego en la rutina de atención a la interrupción pongo:
void UserInterruptHandler(void)
{
if(RCIF == 1){
GIEH = 0;
if(enviando == 0){
envioDatos(enviar);
enviando = 1;
} else {
enviando = 0;
}
GIEH = 1;
}
}
A mitad de enviar los datos se va de aquí, es como si le interrumpieran pero, si estan deshabilitadas, no podría.
Gracias. Saludos