Autor Tema: interrupcion usart salta automaticamente despues de salir de ella  (Leído 1206 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado redep

  • PIC12
  • **
  • Mensajes: 75
interrupcion usart salta automaticamente despues de salir de ella
« en: 16 de Diciembre de 2008, 18:28:50 »
Bueno mi problema es el siguiente estoy comunicando dos pic uno de los pic´s(con usb) recibe datos de otro pic,esta transmision se hace mediante usart pero lo que ocurre en la recepcion es que entra correctamente pero cuando va se termina la interrucion vuelve a entrar y se queda bloqueado en el while(PIR1bits.RCIF==0);no entiendo porque lo hace ,la segunda interrupcion la provoca el usart ya que lo e comprobado.Aki os dejo un trozo del programa, el fallo puede ser debio a los delays grandes(a lo mejor es un sin sentido)pero es que no se.


volatile int v;
volatile unsigned char *m;
volatile char medidas[22];
volatile unsigned char flagGuardado;
unsigned char flagEnvio;
void interrupciones_bajas (void);/////////////////////
#pragma code las_interrupciones_bajas = 0x18////////////////////////////////////
   void interrupciones_bajas_asm (void)
      {
           _asm goto interrupciones_bajas _endasm
         
      }
      #pragma code

      #pragma interruptlow interrupciones_bajas
      void interrupciones_bajas (void){


            m = (unsigned char *)&medidas[0];
            for (v = 0; v<21; v++)
            {
            while(PIR1bits.RCIF==0); //wait until you receive a character
            *m=RCREG;
            ++m;
            
            

            }
            PIR1bits.RCIF = 0;
            
}


El caso es que hize una rutina de tx y rx con interrupcion LO MAS BASICO POSIBLE y funcionaba pero con el firmware de usb de microchip me falla, haber si alguien se le ocurre algo o una forma alternativa