Beispiel #1
0
/* ********************************************************************   */
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();
}
Beispiel #2
0
__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();
}