implement rx631 SCI ERI handler with GCC

Hi,

i have an UART running on the RX631 with GCC 

I have interrupt handlers for receive, transmit and transmit finished

INT_Excep_SCI5_RXI5
INT_Excep_SCI5_TXI5
INT_Excep_SCI5_TEI5


But according to the datasheet there is an ERI handler for errors like framing or parity which i can handle there.

I'm a little bit lost atm which interrupt vector i should use for this? my interrupt_handlers.h has no declaration for this vector


regards

Parents
  • ok, i think i got it

    // enable ERI interrupt
    IPR( ICU, GROUP12 ) = RS485_IP_LEVEL; // priority
    IEN( ICU, GROUP12 ) = 1;
    ICU.GEN[12].BIT.EN5 = 1; // enable RX err GROUP12 for 63x
    // EN( SCI5, ERI5 );        // enable ERI5 error interrupt
    the EN does to seem to do anything
    
    this is my irq handler
    this can be called by other SCIx aswell so maybe this needs better handling
    
    void INT_Excep_ICU_GROUP12( void )
      {
        volatile uint8_t dummy = RS485_SCI.SSR.BYTE;
        RS485_SCI.SSR.BIT.FER  = 0;
        RS485_SCI.SSR.BIT.ORER = 0;
        RS485_SCI.SSR.BIT.PER  = 0;
      }


Reply
  • ok, i think i got it

    // enable ERI interrupt
    IPR( ICU, GROUP12 ) = RS485_IP_LEVEL; // priority
    IEN( ICU, GROUP12 ) = 1;
    ICU.GEN[12].BIT.EN5 = 1; // enable RX err GROUP12 for 63x
    // EN( SCI5, ERI5 );        // enable ERI5 error interrupt
    the EN does to seem to do anything
    
    this is my irq handler
    this can be called by other SCIx aswell so maybe this needs better handling
    
    void INT_Excep_ICU_GROUP12( void )
      {
        volatile uint8_t dummy = RS485_SCI.SSR.BYTE;
        RS485_SCI.SSR.BIT.FER  = 0;
        RS485_SCI.SSR.BIT.ORER = 0;
        RS485_SCI.SSR.BIT.PER  = 0;
      }


Children
No Data