Você está na página 1de 2

void INTERRUPCAO_HIGH() iv 0x0008 ics ICS_AUTO {

unsigned char ret;


if(PIR1.RC1IF == 1 && PIE1.RC1IE == 1)
{
if(RCSTA1.OERR == 1){ RCSTA1.CREN = 0; RCSTA1.CREN = 1; }
//ERRO POR OVERFLOW DO BUFFER

ret = UART1_Read(); //Leitura do buffer serial (lê RCREG)


UART1_Write(ret+1); //ECO

PIR1.RC1IF = 0;
}
}

void ConfigMCU()
{
#ifdef P18F45K22
ANSELC = 0;
#else

#endif
}

void main() {

ConfigMCU();
UART1_Init(9600);

//Configuração Global das Interrupções***************


INTCON.GIEH = 1;
INTCON.GIEL = 1;
RCON.IPEN = 1;
//***************************************************

PIR1.RCIF = 0; //Flag que sinaliza a chegada de um byte pela recepção


serial
IPR1.RCIP = 1; //alta prioridade de interrupção na RECEPÇÃO serial
PIE1.RC1IE = 1; //Habilita a interrupção serial na recepção

while(1);

Você também pode gostar