Add new TWI_BITLENGTH_FROM_FREQ() macro to the AVR8 TWI peripheral driver.
authorDean Camera <dean@fourwalledcubicle.com>
Fri, 2 Sep 2011 04:38:56 +0000 (04:38 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Fri, 2 Sep 2011 04:38:56 +0000 (04:38 +0000)
Change Delay_MS() to accept a 16-bit parameter rather than an 8-bit parameter for longer possible delays.

Minor documentation improvements.

LUFA/Common/Common.h
LUFA/Drivers/Peripheral/AVR8/Serial_AVR8.h
LUFA/Drivers/Peripheral/AVR8/TWI_AVR8.h

index 43df9fb..e9faf7a 100644 (file)
                         *
                         *  \param[in] Milliseconds  Number of milliseconds to delay
                         */
-                       static inline void Delay_MS(uint8_t Milliseconds) ATTR_ALWAYS_INLINE;
-                       static inline void Delay_MS(uint8_t Milliseconds)
+                       static inline void Delay_MS(uint16_t Milliseconds) ATTR_ALWAYS_INLINE;
+                       static inline void Delay_MS(uint16_t Milliseconds)
                        {
                                #if (ARCH == ARCH_AVR8)
                                if (GCC_IS_COMPILE_CONST(Milliseconds))
index d8216cd..639b3c3 100644 (file)
 
        /* Public Interface - May be used in end-application: */
                /* Macros: */
-                       /** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is
+                       /** Macro for calculating the baud value from a given baud rate when the \c U2X (double speed) bit is
                         *  not set.
+                        *
+                        *  \param[in] Baud  Target serial UART baud rate.
+                        *
+                        *  \return Closest UBRR register value for the given UART frequency.
                         */
-                       #define SERIAL_UBBRVAL(baud)    ((((F_CPU / 16) + (baud / 2)) / (baud)) - 1)
+                       #define SERIAL_UBBRVAL(Baud)    ((((F_CPU / 16) + (Baud / 2)) / (Baud)) - 1)
 
-                       /** Macro for calculating the baud value from a given baud rate when the U2X (double speed) bit is
+                       /** Macro for calculating the baud value from a given baud rate when the \c U2X (double speed) bit is
                         *  set.
+                        *
+                        *  \param[in] Baud  Target serial UART baud rate.
+                        *
+                        *  \return Closest UBRR register value for the given UART frequency.
                         */
-                       #define SERIAL_2X_UBBRVAL(baud) ((((F_CPU / 8) + (baud / 2)) / (baud)) - 1)
+                       #define SERIAL_2X_UBBRVAL(Baud) ((((F_CPU / 8) + (Baud / 2)) / (Baud)) - 1)
 
                /* Function Prototypes: */
                        /** Transmits a given string located in program space (FLASH) through the USART.
index 705ef53..0f31eca 100644 (file)
                        /** Bit length prescaler for \ref TWI_Init(). This mask multiplies the TWI bit length prescaler by 64. */
                        #define TWI_BIT_PRESCALE_64      ((1 << TWPS1) | (1 << TWPS0))
                        
+                       /** Calculates the length of each bit on the TWI bus for a given target frequency. This may be used with
+                        *  the \ref TWI_Init() function to convert a bus frequency to a number of clocks for the \c BitLength
+                        *  parameter.
+                        *
+                        *  \param[in] Prescaler  Prescaler set on the TWI bus.
+                        *  \param[in] Frequency  Desired TWI bus frequency in Hz.
+                        *
+                        *  \return Bit length in clocks for the given TWI bus frequency at the given prescaler value.
+                        */
+                       #define TWI_BITLENGTH_FROM_FREQ(Prescale, Frequency) ((((F_CPU / (Prescale)) / (Frequency)) - 16) / 2)
+
                /* Enums: */
                        /** Enum for the possible return codes of the TWI transfer start routine and other dependant TWI functions. */
                        enum TWI_ErrorCodes_t