/* ******************************************************************** */ void interrupt [RXINT] uart_rx_interrupt(void) { /* Get new character */ int SioInput = URB; OS_EnterInterrupt(); if (SioInput & 0xf000) { # ifdef DEBUG if (SioInput & 0x1000) HandleRxErrOverrun(); if (SioInput & 0x2000) HandleRxErrFraming(); if (SioInput & 0x4000) HandleRxErrParity(); # endif UC1 &= ~(1<<2); /* disable Rx */ UC1 |= (1<<2); /* enable Rx */ /* HandleRxErr(); */ } else { /* HandleRxChar(SioInput&255); */ LastInterrupt = UART_INPUT_INTERRUPT; NumRxChars=1; RxChar = SioInput; if (InCnt <sizeof(RxBuf)) RxBuf[InCnt] = SioInput; if (InCnt++) uart_interrupt(0); } OS_LeaveInterrupt(); }
__interrupt void USCI_A3_ISR(void) { char temp = 0 ; OS_EnterInterrupt() ; switch(__even_in_range(UCA3IV,4)) { case 0:break ; case 2: temp = UCA3RXBUF ; OS_PutMailCond1(&MBRX, &temp) ; break ; case 4:break ; default: break ; } OS_LeaveInterrupt(); }