Detailed Description
Общая утилита заголовков, содержащая макросы, функции, перечисления и типы, которые являются общими для всех аспектов библиотеки. 
Define Documentation
Макрос для монтирования другого многооператорного макроса. Это должно использоваться с предшествующей закрыващей скобкой в конце любого многооператорного макроса, так что содержимое макроса рассматривается как дискретный блок, а не как список отдельных операторов, которые могут создавать пороблемы, когда используются как блок - как встраиваемые (inline) операторы IF. 
 
 
Макрос для монтирования другого многооператорного макроса. Это должно использоваться с открывающей скобкой перед началом любого многооператорного макроса, так что содержимое макроса рассматривается как дискретный блок, а не как список отдельных операторов, которые могут создавать пороблемы, когда используются как блок - как встраиваемые (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] | x | 16-битное значение, у которого меняется порядок байт. | 
  
   
- Returns:
 - входная величина, у которой изменен порядок байт. 
 
 
 
      
        
          | #define SWAPENDIAN_32 | 
          ( | 
            | 
          x | ) | 
           | 
        
      
 
Value:((((x) & 0xFF000000UL) >> 24UL) | (((x) & 0x00FF0000UL) >> 8UL) | \
                                               (((x) & 0x0000FF00UL) << 8UL)  | (((x) & 0x000000FFUL) << 24UL))
Изменение порядка байт в 32-битном значении во времени компиляции. Не используйте этот макрос для изменения порядка байт в динаммических значениях, вычисляемых во время выполнения, используйте вместо этого SwapEndian_32(). Результат этого макроса может быть использован внутри структуры или других различных инициализаторах переменных вне функций, кое-что невозможно с вариантом встроенной (inline) функции.
- Parameters:
 - 
  
    | [in] | x | 32-битное значение, у которого меняется порядок байт. | 
  
   
- Returns:
 - входная величина, у которой изменен порядок байт.