#include "usart.h"

void InitUsart (void)
{

TRISCbits.TRISC6=0; //TX - transmissão
TRISCbits.TRISC7=1; //RX - recepção

/*9600@20MHz*/
SPBRGH = 0b00000010; //definição de baudrate
SPBRG = 0b00001000; //definição de baudrate

/*9600@25MHz*/
//SPBRGH = 0b00000010; //definição de baudrate
//SPBRG = 0b10001010; //definição de baudrate

/*9600@4MHz*/
/*
SPBRGH = 0; //definição de baudrate
SPBRG = 25; //definição de baudrate
*/

TXSTAbits.BRGH = 1; 
BAUDCONbits.BRG16 = 1;

TXSTAbits.SYNC = 0; //modo assincrono
RCSTAbits.SPEN = 1; //abilita a porta serie


RCONbits.IPEN = 1; //estabelece prioridade nos interrupts
//IPR1bits.TXIP = 1; //estabelece interrupt de transmissão na EUSART como alta prioridade
IPR1bits.RCIP = 1; //estabelece interrupt de recepção na EUSART como alta prioridade
INTCONbits.GIEH = 1; //activa os interrupts de alta prioridade
INTCONbits.GIEL = 0; //não activa os interrupts de baixa prioridade


PIE1bits.TXIE = 0; // interrupt de tranmissão off
PIE1bits.RCIE = 1; //interrupts de recepção on


TXSTAbits.TX9 = 0; //comunicação a 8bits
RCSTAbits.RX9 = 0; //comunicação a 8bits


TXSTAbits.TXEN = 1; //abilita a transmissão

RCSTAbits.CREN = 1; //abilita a recepção

}