Você está na página 1de 3

volatile unsigned char Count = 0;

void INTERRUPT_HIGH() iv 0x0008 ics ICS_AUTO {

if(TX1IF_bit == 1 && TX1IE_bit == 1)


{
TX1IE_bit = 0; //desligar a chave que habilita a interrupção na transmissão
serial
TX1IF_bit = 0; //apago o flag

switch(Count)
{
case 1: {
UART1_Write_Text(" BOA -");
break;
}
case 2: {
UART1_Write_Text(" NOITE ");
Count = 0;
break;
}

TX1IF_bit = 0;
}

void ConfigMCU()
{
#ifdef P18F45K22
ANSELB = 0;
ANSELC = 0;
#else
ADCON1 |= 0X0F;
#endif

TRISB.RB0 = 1; //Tecla
PORTB.RB0 = 1;

void main() {
UART1_Init(9600);

//Configuração Global de Interrupção


GIEH_bit = 1;
GIEL_bit = 1;
IPEN_bit = 1;

//Configuração da Interrupção na transmissão serial


TX1IF_bit = 0;
TX1IP_bit = 1;
TX1IE_bit = 1;

while(1)
{
if(PORTB.RB0 == 0)
{
if(Count <= 2) Count++; else Count = 0;
TX1IF_bit = 1; //Dispara a interrupção na transmissão serial
TX1IE_bit = 1; //Habilita a interrupção na transmissão serial
Delay_ms(500);

}
}

Você também pode gostar