Estoy usando un MSP430F5529 cronometrado a 1 MHz y quiero usar el UART a 9600 baudios. Hasta ahora lo hice:
void UART_init(void) {
UCA0CTL1 |= UCSWRST; // Reset the UART's state machine
UCA0CTL0 |= UCMSB; // MSB first, 8n1 mode
UCA0CTL1 |= UCSSEL_2; // SMCLK
// 1 MHz/9600 baud = 104.666.
// Rounding down to 104 = 9615 bauds
UCA0BR0 = 104;
UCA0BR1 = 0;
}
Pero ahora no entiendo cómo elegir el valor del registro de modulación ( UCA1MCTL
) para acercarme lo más posible a 9600 baudios. La Guía del usuario de MSP430Fx5xx , en la página 908, propone utilizar UCBRS_1
, pero no entiendo cómo se alcanza el valor.
¿Cómo calculo este registro?