More random serial bit frobbing
[fw/altos] / target / serial / serial.c
index 6db81ae9c949257ecbcb376b746cff310902bec5..589452c0dbb730ba90eed438f52bf5ad60c76b5f 100644 (file)
@@ -188,22 +188,23 @@ usart_init(void)
        /*
         * Reasonable serial parameters
         */
-       U1UCR = (UxUCR_FLOW_DISABLE |
-                UxUCR_D9_EVEN_PARITY |
+       U1UCR = (UxUCR_FLUSH |
+                UxUCR_FLOW_DISABLE |
+                UxUCR_D9_ODD_PARITY |
                 UxUCR_BIT9_8_BITS |
                 UxUCR_PARITY_DISABLE |
-                UxUCR_SPB_1_STOP_BIT |
-                UxUCR_STOP_LOW |
-                UxUCR_START_HIGH);
+                UxUCR_SPB_2_STOP_BITS |
+                UxUCR_STOP_HIGH |
+                UxUCR_START_LOW);
 }
 
 void
 usart_out_byte(uint8_t byte)
 {
-       U1CSR &= ~UxCSR_TX_BYTE;
        U1DBUF = byte;
        while ((U1CSR & UxCSR_TX_BYTE) == 0)
                ;
+       U1CSR &= ~UxCSR_TX_BYTE;
 }
 
 uint8_t