void Configuracion_UARTs(void)
{
uint16_t baudvalue;
uint16_t UMODEvalue;
uint16_t USTAvalue;
CloseUART1(); // Solo por si acaso fue un reset
CloseUART2();
/*
* Configuracion de las interrupciones, habilitadas/deshabilitadas
* y prioridades de las mismas
*/
ConfigIntUART1(UART_RX_INT_EN & UART_RX_INT_PR6 &
UART_TX_INT_EN & UART_TX_INT_PR6);
ConfigIntUART2(UART_RX_INT_EN & UART_RX_INT_PR6 &
UART_TX_INT_EN & UART_TX_INT_PR6);
/*
* Configuracion de la UART,
*
* UxMODE Register:
* UART_EN : UART habilitada
* UART_IDLE_CON : Modo de operacion continua en Idle
* UART_DIS_WAKE : Deshabilitado el Wake-Up por medio de la UART
* UART_DIS_LOOPBACK: Deshabilito el Loopback, bueno para test, cambiar DIS por EN
* UART_DIS_ABAUD : Deshabilitado el Auto-Baud
* UART_NO_PAR_8bit : Sin paridad y 8 bits
* UART_1STOPBIT : 1 bit de stop
* UART_IrDA_DISABLE: Desativa la codificacion IrDA
* UART_UEN_00 : Pines RX y TX usados por el modulo, los demas ( CTS,RTS por el usuario )
* UART_BRGH_FOUR : High Baud Rate Generator activado
* UART_MODE_SIMPLEX : Modo Simple sin control de Flujo
*
* UxSTA Register:
* UART_INT_TX_BUF_EMPTY : Interrupcion generado cuando se vacia el buffer
* UART_IrDA_POL_INV_ZERO : Idle state la salida esta en 0 (al no estar habilitado IrDA se refiere a UxTX )
* UART_TX_ENABLE : Activamos el Transmisor
* UART_INT_RX_CHAR : Definimos que el flag se ponga a 1 por cada char que entre, otras opciones 3/4 o full
* UART_ADR_DETECT_DIS: Deshabilitamos la deteccion de direccion ( aunque con 8 bits no funciona )
* UART_RX_OVERRUN_CLEAR : Limpiamos el bit de Overrun por si las dudas
*/
UMODEvalue = UART_EN & UART_IDLE_CON &
UART_DIS_WAKE & UART_EN_LOOPBACK &
UART_EN_ABAUD & UART_NO_PAR_8BIT &
UART_1STOPBIT & UART_IrDA_DISABLE &
UART_UEN_00 & UART_BRGH_FOUR &
UART_MODE_SIMPLEX;
USTAvalue = UART_INT_TX_BUF_EMPTY & UART_IrDA_POL_INV_ZERO &
UART_TX_ENABLE & UART_INT_RX_CHAR &
UART_ADR_DETECT_DIS & UART_RX_OVERRUN_CLEAR;
baudvalue = 5;
OpenUART1(UMODEvalue,USTAvalue,baudvalue);
OpenUART2(UMODEvalue,USTAvalue,baudvalue);
}