Библиотека LUFA (раннее название MyUSB) версия 101122
Common Utility Headers - LUFA/Drivers/Common/Common.h

Modules

 Function/Variable Attributes
 Board Types
 Debugging Macros
 Endian and Bit Macros

Defines

#define MACROS   do
#define MACROE   while (0)
#define pgm_read_ptr(Addr)   (void*)pgm_read_word(Addr)
#define SWAPENDIAN_16(x)   ((((x) & 0xFF00) >> 8) | (((x) & 0x00FF) << 8))
#define SWAPENDIAN_32(x)

Detailed Description

Общая утилита заголовков, содержащая макросы, функции, перечисления и типы, которые являются общими для всех аспектов библиотеки.


Define Documentation

#define MACROE   while (0)

Макрос для монтирования другого многооператорного макроса. Это должно использоваться с предшествующей закрыващей скобкой в конце любого многооператорного макроса, так что содержимое макроса рассматривается как дискретный блок, а не как список отдельных операторов, которые могут создавать пороблемы, когда используются как блок - как встраиваемые (inline) операторы IF.

#define MACROS   do

Макрос для монтирования другого многооператорного макроса. Это должно использоваться с открывающей скобкой перед началом любого многооператорного макроса, так что содержимое макроса рассматривается как дискретный блок, а не как список отдельных операторов, которые могут создавать пороблемы, когда используются как блок - как встраиваемые (inline) операторы IF.

#define pgm_read_ptr (   Addr)    (void*)pgm_read_word(Addr)

Читает указатель из пространства PROGMEM. Это в настоящий момент обертка для макроса avr-libc pgm_read_ptr() с преобразованием типа к void*, благодаря чему его значение может быть напрямую присвоено переменной указателя или использоваться в арифметике указателей без дальнейших преобразований в C. В будущих дистрибутивах avr-libc эта возможность будет частью стандартного API и реализована более формальным способом.

Parameters:
[in]Addrадрес указателя для чтения
Returns:
указатель, полученный из пространства PROGMEM.
#define SWAPENDIAN_16 (   x)    ((((x) & 0xFF00) >> 8) | (((x) & 0x00FF) << 8))

Меняет порядок байт в 16-битном значении во время компиляции. Не используйте этот макрос для переключения порядка байт в динамических значениях, получаемых во время выполнения, используйте вместо этого SwapEndian_16(). Результат этого макроса может быть использован внутри структуры или других различных инициализаторах переменных вне функций, кое-что невозможно с вариантом встроенной (inline) функции.

Parameters:
[in]x16-битное значение, у которого меняется порядок байт.
Returns:
входная величина, у которой изменен порядок байт.
#define SWAPENDIAN_32 (   x)
Value:
((((x) & 0xFF000000UL) >> 24UL) | (((x) & 0x00FF0000UL) >> 8UL) | \
                                               (((x) & 0x0000FF00UL) << 8UL)  | (((x) & 0x000000FFUL) << 24UL))

Изменение порядка байт в 32-битном значении во времени компиляции. Не используйте этот макрос для изменения порядка байт в динаммических значениях, вычисляемых во время выполнения, используйте вместо этого SwapEndian_32(). Результат этого макроса может быть использован внутри структуры или других различных инициализаторах переменных вне функций, кое-что невозможно с вариантом встроенной (inline) функции.

Parameters:
[in]x32-битное значение, у которого меняется порядок байт.
Returns:
входная величина, у которой изменен порядок байт.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines