Hola chicos! es la primera vez que piso este subforo ya que nunca me meti con dsPic por ahora...
Estoy queriendo hacer un programita para controlar un iPod, y resulta que la base de lo que quiero hacer ya lo hizo alguien por internet, pero con un dsPic

Yo lo quiero adaptar a un Pic12 porque no necesito ni tantos pines ni tantos recursos, pero leyendo el datasheet y el codigo no consigo entender muy bien como configura el UART.
Este es el codigo:
void uartInit (void)
{
U1BRG = 0x33; //19200 baud
_U1TXIP = 0;
_U1RXIP = 0;
IEC0bits.U1TXIE = 1;
IEC0bits.U1RXIE = 1;
U1STAbits.UTXISEL = 0;
U1STAbits.UTXBRK = 0;
U1STAbits.URXISEL = 0;
U1STAbits.ADDEN = 0;
U1MODE = 0x8400;
U1STAbits.UTXEN = 1;
}
void uartSend (char cString[], int len)
{
messageLen = len;
message = cString;
messageI = 0;
_U1TXIF = 1;
_U1TXIP = 0x5;
Nop();
while ((messageI < messageLen) || (!U1STAbits.TRMT))
{
Nop();
}
_U1TXIP = 0x0;
}
En principio deberia ser 8N1, a 19200bps que es como funciona el
Apple Accessory ProtocolLuego la transmision no entiendo tampoco como la hace...

Para que es el "while"?
Cualquier ayuda es bienvenida

Salu2