LUFA Library  130901
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Common Utility Headers - LUFA/Drivers/Common/Common.h

Common library convenience headers, macros and functions. More...

Modules

 Architecture Specific Definitions
 Architecture specific definitions relating to specific processor architectures.
 
 Board Types
 Supported pre-made board hardware defines.
 
 Compiler Specific Definitions
 Compiler specific definitions for code optimization and correctness.
 
 Endianness and Byte Ordering
 Convenience macros and functions relating to byte (re-)ordering.
 
 Function/Variable Attributes
 Special function/variable attribute macros.
 
 Global Interrupt Macros
 Convenience macros for the management of interrupts globally within the device.
 
 Hardware Architectures
 Supported library architecture defines.
 

Macros

#define CONCAT(x, y)   x ## y
 
#define CONCAT_EXPANDED(x, y)   CONCAT(x, y)
 
#define MACROE   while (0)
 
#define MACROS   do
 
#define MAX(x, y)   (((x) > (y)) ? (x) : (y))
 
#define MIN(x, y)   (((x) < (y)) ? (x) : (y))
 
#define STRINGIFY(x)   #x
 
#define STRINGIFY_EXPANDED(x)   STRINGIFY(x)
 

Typedefs

typedef MACHINE_REG_t uint_reg_t
 

Functions

static uint8_t BitReverse (uint8_t Byte) ATTR_WARN_UNUSED_RESULT ATTR_CONST
 
static void Delay_MS (uint16_t Milliseconds) ATTR_ALWAYS_INLINE
 

Detailed Description

Common utility headers containing macros, functions, enums and types which are common to all aspects of the library.

Macro Definition Documentation

#define CONCAT (   x,
 
)    x ## y

Concatenates the given input into a single token, via the C Preprocessor.

Parameters
[in]xFirst item to concatenate.
[in]ySecond item to concatenate.
Returns
Concatenated version of the input.
#define CONCAT_EXPANDED (   x,
 
)    CONCAT(x, y)

CConcatenates the given input into a single token after macro expansion, via the C Preprocessor.

Parameters
[in]xFirst item to concatenate.
[in]ySecond item to concatenate.
Returns
Concatenated version of the expanded input.
#define MACROE   while (0)

Macro for encasing other multi-statement macros. This should be used along with a preceding closing brace at the end of any multi-statement macro, so that the macros contents as a whole are treated as a discrete block and not as a list of separate statements which may cause problems when used as a block (such as inline if statements).

#define MACROS   do

Macro for encasing other multi-statement macros. This should be used along with an opening brace before the start of any multi-statement macro, so that the macros contents as a whole are treated as a discrete block and not as a list of separate statements which may cause problems when used as a block (such as inline if statements).

#define MAX (   x,
 
)    (((x) > (y)) ? (x) : (y))

Convenience macro to determine the larger of two values.

Attention
This macro should only be used with operands that do not have side effects from being evaluated multiple times.
Parameters
[in]xFirst value to compare
[in]yFirst value to compare
Returns
The larger of the two input parameters
#define MIN (   x,
 
)    (((x) < (y)) ? (x) : (y))

Convenience macro to determine the smaller of two values.

Attention
This macro should only be used with operands that do not have side effects from being evaluated multiple times.
Parameters
[in]xFirst value to compare.
[in]yFirst value to compare.
Returns
The smaller of the two input parameters
#define STRINGIFY (   x)    #x

Converts the given input into a string, via the C Preprocessor. This macro puts literal quotation marks around the input, converting the source into a string literal.

Parameters
[in]xInput to convert into a string literal.
Returns
String version of the input.
#define STRINGIFY_EXPANDED (   x)    STRINGIFY(x)

Converts the given input into a string after macro expansion, via the C Preprocessor. This macro puts literal quotation marks around the expanded input, converting the source into a string literal.

Parameters
[in]xInput to expand and convert into a string literal.
Returns
String version of the expanded input.

Typedef Documentation

typedef MACHINE_REG_t uint_reg_t

Type define for an unsigned integer the same width as the selected architecture's machine register. This is distinct from the non-specific standard int data type, whose width is machine dependant but which may not reflect the actual machine register width on some targets (e.g. AVR8).

Function Documentation

static uint8_t BitReverse ( uint8_t  Byte)
inlinestatic

Function to reverse the individual bits in a byte - i.e. bit 7 is moved to bit 0, bit 6 to bit 1, etc.

Parameters
[in]ByteByte of data whose bits are to be reversed.
Returns
Input data with the individual bits reversed (mirrored).
static void Delay_MS ( uint16_t  Milliseconds)
inlinestatic

Function to perform a blocking delay for a specified number of milliseconds. The actual delay will be at a minimum the specified number of milliseconds, however due to loop overhead and internal calculations may be slightly higher.

Parameters
[in]MillisecondsNumber of milliseconds to delay