From 9b0e4b8356eb79003a806d010f4b00123350ed90 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Thu, 22 Jul 2010 15:38:12 +0000 Subject: Convert over internal pseudo-function macros to true inline functions for added type-safety and compile-checking. --- LUFA/Drivers/Peripheral/Serial.h | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'LUFA/Drivers/Peripheral/Serial.h') diff --git a/LUFA/Drivers/Peripheral/Serial.h b/LUFA/Drivers/Peripheral/Serial.h index 83bdbbf00..4eb74b9d2 100644 --- a/LUFA/Drivers/Peripheral/Serial.h +++ b/LUFA/Drivers/Peripheral/Serial.h @@ -76,17 +76,6 @@ */ #define SERIAL_2X_UBBRVAL(baud) ((((F_CPU / 8) + (baud / 2)) / (baud)) - 1) - /* Pseudo-Function Macros: */ - #if defined(__DOXYGEN__) - /** Indicates whether a character has been received through the USART. - * - * \return Boolean true if a character has been received, false otherwise. - */ - static inline bool Serial_IsCharReceived(void); - #else - #define Serial_IsCharReceived() ((UCSR1A & (1 << RXC1)) ? true : false) - #endif - /* Function Prototypes: */ /** Transmits a given string located in program space (FLASH) through the USART. * @@ -132,11 +121,22 @@ UBRR1 = 0; } + + /** Indicates whether a character has been received through the USART. + * + * \return Boolean true if a character has been received, false otherwise. + */ + static inline bool Serial_IsCharReceived(void) ATTR_WARN_UNUSED_RESULT ATTR_ALWAYS_INLINE; + static inline bool Serial_IsCharReceived(void) + { + return ((UCSR1A & (1 << RXC1)) ? true : false); + } /** Transmits a given byte through the USART. * * \param[in] DataByte Byte to transmit through the USART. */ + static inline void Serial_TxByte(const char DataByte) ATTR_ALWAYS_INLINE; static inline void Serial_TxByte(const char DataByte) { while (!(UCSR1A & (1 << UDRE1))); @@ -147,6 +147,7 @@ * * \return Byte received from the USART. */ + static inline char Serial_RxByte(void) ATTR_ALWAYS_INLINE; static inline char Serial_RxByte(void) { while (!(UCSR1A & (1 << RXC1))); -- cgit v1.2.3