|
|
@@ -238,41 +238,10 @@ void __attribute__((__interrupt__,no_auto_psv)) _U2RXInterrupt(void)
|
|
|
void __attribute__((__interrupt__,no_auto_psv)) _U3RXInterrupt(void)
|
|
|
{
|
|
|
IFS5bits.U3RXIF = 0;
|
|
|
- g_ucU1RX_Data[g_uiUart1_No] = U3RXREG;
|
|
|
- if(g_BUSY1 == 1) return;
|
|
|
- if(g_ucHeaderFlag1 == 0){
|
|
|
- if(g_ucU1RX_Data[g_uiUart1_No] == FRAME_HEAD){
|
|
|
- g_ucHeaderFlag1 = 1;
|
|
|
- g_ucU1RX_Data[0] = FRAME_HEAD;
|
|
|
- g_uiUart1_No = 1;
|
|
|
- }else{
|
|
|
- g_BUSY1 = 0;
|
|
|
- }
|
|
|
- }else if(g_ucHeaderFlag1 == 1){
|
|
|
- g_uiUart1_No++;
|
|
|
- }
|
|
|
- if(g_uiUart1_No > (FRAME_LTHH_INDEX+1)){
|
|
|
- g_uiLth1 = g_ucU1RX_Data[FRAME_LTHH_INDEX];
|
|
|
- if(g_uiUart1_No == g_uiLth1){
|
|
|
- g_ulRSUM1 = Check(g_ucU1RX_Data,g_uiLth1-1);
|
|
|
- g_ucCRC1 = (unsigned char)g_ulRSUM1; //
|
|
|
- if(g_ucCRC1 == g_ucU1RX_Data[g_uiLth1-1]){
|
|
|
- g_ucCMD1 = g_ucU1RX_Data[FRAME_CMD_INDEX];
|
|
|
- g_ucUART1_flag = 1;
|
|
|
- g_ulRSUM1 = 0;
|
|
|
- g_uiUart1_No = 0;
|
|
|
- g_ucHeaderFlag1 = 0;
|
|
|
- g_BUSY1 = 1;
|
|
|
- }else{
|
|
|
- memset(g_ucU1RX_Data,0,g_uiLth1*sizeof(unsigned char));
|
|
|
- g_BUSY1 = 0;
|
|
|
- }
|
|
|
- }else if(g_uiUart1_No > g_uiLth1){
|
|
|
- g_uiUart1_No = 0;
|
|
|
- g_ucHeaderFlag1 = 0;
|
|
|
- g_BUSY1 = 0;
|
|
|
- }
|
|
|
- }
|
|
|
+ g_ucU3RX_Buf[uart3_last++] = U3RXREG;
|
|
|
+ if(uart3_last == MAX_UART_BUFFER_SIZE){
|
|
|
+ uart3_last = 0;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/*******************************************************************************
|