Fixed ISR definition conflict in the XPLAIN bridge between the software UART and...
[pub/USBasp.git] / LUFA / Drivers / Peripheral / Serial.h
index 23bbd6a..47f65ea 100644 (file)
@@ -90,7 +90,7 @@
                        void Serial_TxString(const char* StringPtr) ATTR_NON_NULL_PTR_ARG(1);
 
                /* Inline Functions: */
-                       /** Initialises the USART, ready for serial data transmission and reception. This initialises the interface to
+                       /** Initializes the USART, ready for serial data transmission and reception. This initializes the interface to
                         *  standard 8-bit, no parity, 1 stop bit settings suitable for most applications.
                         *
                         *  \param[in] BaudRate     Serial baud rate, in bits per second.
                        static inline void Serial_Init(const uint32_t BaudRate,
                                                       const bool DoubleSpeed)
                        {
+                               UBRR1  = (DoubleSpeed ? SERIAL_2X_UBBRVAL(BaudRate) : SERIAL_UBBRVAL(BaudRate));
+
+                               UCSR1C = ((1 << UCSZ11) | (1 << UCSZ10));
                                UCSR1A = (DoubleSpeed ? (1 << U2X1) : 0);
                                UCSR1B = ((1 << TXEN1)  | (1 << RXEN1));
-                               UCSR1C = ((1 << UCSZ11) | (1 << UCSZ10));
                                
-                               DDRD  |= (1 << 3);      
+                               DDRD  |= (1 << 3);
                                PORTD |= (1 << 2);
-                               
-                               UBRR1  = (DoubleSpeed ? SERIAL_2X_UBBRVAL(BaudRate) : SERIAL_UBBRVAL(BaudRate));
                        }
 
                        /** Turns off the USART driver, disabling and returning used hardware to their default configuration. */
                        static inline void Serial_ShutDown(void)
                        {
-                               UCSR1A = 0;
                                UCSR1B = 0;
+                               UCSR1A = 0;
                                UCSR1C = 0;
+
+                               UBRR1  = 0;
                                
-                               DDRD  &= ~(1 << 3);     
+                               DDRD  &= ~(1 << 3);
                                PORTD &= ~(1 << 2);
-                               
-                               UBRR1  = 0;
                        }
 
                        /** Indicates whether a character has been received through the USART.
                                UDR1 = DataByte;
                        }
 
-                       /** Receives a byte from the USART.
+                       /** Receives a byte from the USART. This function blocks until a byte has been
+                        *  received; if non-blocking behaviour is required, test for a received character
+                        *  beforehand with \ref Serial_IsCharReceived().
                         *
                         *  \return Byte received from the USART.
                         */