Soy nuevo en la programación PIC y estoy haciendo un ejercicio con UART. Después de construir el programa, el mensaje no se muestra. ¿Puede alguien decirme donde me equivoco? BAUDRATE = 9600, _XTAL_FREQ = 20Mhz. Mi código:
void initUART(void)
{
TRISC6 = 1; // TX
TRISC7 = 1; // RX
SPBRG = ((_XTAL_FREQ/16)/BAUDRATE) - 1;
BRGH = 1; // high baud rate
SYNC = 0; // async
SPEN = 1; // configure RC6 RC7
CREN = 1; // continuous recep.
SREN = 0;
TXIE = 0;
RCIE = 1;
TX9 = 0; // 8-bit txn
RX9 = 0; // 8-bit rxn
TXEN = 0; // reset tx
TXEN = 1; // enable txn
}
void main()
{
initUART();
GIE = 1;
PEIE = 1;
senddata("Embedded systems");
while(1){
//sendbyte(receivebyte()); //when interrupts are disabled
}
}
void senddata(const unsigned char *data)
{
while(*data)
sendbyte(*data++);
}
void sendbyte(unsigned char byte)
{
while(!TXIF)
TXREG = byte;
}
/*char receivebyte(void)
{
if(OERR){
CREN = 0;
CREN = 1;
}
while(!RCIF);
return RCREG;
}*/
void interrupt isr(void)
{
if(RCIF){
if(OERR){
CREN = 0;
CREN = 1;
}
sendbyte(RCREG);
}
}