char *uart_ReadArray;
//UART_Rx @ RC3 or U1RX or MC_pin 36-RPC3//UART_Tx @ RC5 or U1TX or MC_pin 38-RPC5
void Initiate_UART(void){
//------------------------------------------------------------------------------
TRISC4_bit = 1;
TRISC5_bit = 0;
//----------------------------Rx and Tx Pins setting----------------------------
Unlock_IOLOCK();
PPS_Mapping(_RPC3, _INPUT, _U1RX);
PPS_Mapping(_RPC5, _OUTPUT, _U1TX);
Lock_IOLOCK();
//-----------Init UART1 at 9600 bps after Intrrupt settings---------------------
// UART1_Init(19200); // Initialize UART module at 56000 bps
UART1_Init(9600); // Initialize UART module at 9600 bps
// UART1_Init_Advanced(9600, 8000, 255, _UART_8BIT_EVENPARITY, _UART_ONE_STOPBIT);
Delay_ms(1);
// U1STA.OERR = 0;
OERR_bit = 0;//Over Run Protection
//--------------------------Setting Interrupt-----------------------------------
//-------------------------Disable CPU interrupts-------------------------------
DisableInterrupts();
U1RXIE_bit = 0;
U1TXIE_bit = 0;
U1EIE_bit = 0;
//-----------------Setting Interrupt Vector(110 = 6)-For RC3--------------------
U1IP0_bit = 0;
U1IP1_bit = 1;
U1IP2_bit = 1;
//-----------Setting Interrupt SubPriority Vector(11 = 3)-For RC3---------------
U1IS0_bit = 1;
U1IS1_bit = 1;
//----------------Clear all Interrupt Flags-------------------------------------
U1RXIF_bit = 0; //RPC3 // Clear UART Receive Interrupt Flag
U1TXIF_bit = 0; //RPC5 // Clear UART Transmit interrupt Flag
U1EIF_bit = 0; // Clear UART Fault interrupt Flag
//------------------------Set UART Receive Interrupt----------------------------//UART
U1RXIE_bit = 1;
//--------------------------Enable CPU interrupts-------------------------------
EnableInterrupts();
//------------------------------------------------------------------------------
}
//------------------------------------------------------------------------------
//---------------------------UART1 Interrupt Handler----------------------------
void UART1_interrupt() iv IVT_UART_1 ilevel 6 ics ICS_AUTO {
//---------------------------Enter into UART Mode-------------------------------
if (UART_Data_Ready() == 1) {
UART1_Read_Text(uart_ReadArray, ">", 250);
UART1_Write_Text(uart_ReadArray);
}
//--------------------------Clear Interrupt Flag--------------------------------
U1RXIF_bit = 0; // dis-Enable UART Receive Interrupt
U1TXIF_bit = 0; // dis-Enable UART Transmit interrupt
U1EIF_bit = 0; // dis-Enable UART Fault interrupt
//------------------------------------------------------------------------------
}
//------------------------------------------------------------------------------
//-----------------------Main Funtion of the Project----------------------------
void main() {
//------------------------------------------------------------------------------
//-------------------------------ADC Enable----------------------------------
ANSELA = 0;
ANSELB = 0;
ANSELC = 0;
//------------------------------------------------------------------------------
Initiate_UART();
//------------------------------------------------------------------------------
while (1) {
}
}
//------------------------------------------------------------------------------