/**************************************************************************** Function IntUart1Handler Parameters None. Returns None. Description Interrupt Handle for the uart. with the PIC32 architecture both send and receive are handled within the same interrupt Notes Author Max Dunne, 2011.11.10 ****************************************************************************/ void __ISR(_UART1_VECTOR, ipl4) IntUart1Handler(void) { if (mU1RXGetIntFlag()) { mU1RXClearIntFlag(); writeBack(receiveBufferUart1, (unsigned char) U1RXREG); } if (mU1TXGetIntFlag()) { mU1TXClearIntFlag(); if (!(getLength(transmitBufferUart1) == 0)) { U1TXREG = readFront(transmitBufferUart1); } } }
//******************************************************************************************* // UART 1 interrupt handler // it is set at priority level 2 //******************************************************************************************* void __ISR(_UART1_VECTOR, ipl2) IntUart1Handler(void) { unsigned char theChar; // Is this an RX interrupt? if (mU1RXGetIntFlag()) { theChar = ReadUART1(); store_char(theChar, &rx_buffer1); // Clear the RX interrupt Flag (must be AFTER the read) mU1RXClearIntFlag(); } // We don't care about TX interrupt if ( mU1TXGetIntFlag() ) { mU1TXClearIntFlag(); } }
//********************************************* //********* UART 1 interrupt handler ********** // Action: Read char received via UART1 //********************************************* void __ISR(_UART1_VECTOR, ipl2) IntUart1Handler(void) { // Is this an RX interrupt? if(mU1RXGetIntFlag()) { // Clear the RX interrupt Flag mU1RXClearIntFlag(); USART_Received_Data = USART_RxData_Reg; // Read received data fUSART_Receive_Set; // Set flag //Return Echo: USART_Received_Data++; USART_Send_Data(USART_Received_Data); } // We don't care about TX interrupt if ( mU1TXGetIntFlag() ) { mU1TXClearIntFlag(); } }