MyLibs 1.0 Расширенные библиотеки для STM32

Loading...
Searching...
No Matches
Bit access defines
My Libs » General Tools

Макросы и typedef'ы для работы с битами в unsigned типах. More...

Collaboration diagram for Bit access defines:

## Classes
union | uint8_BitTypeDef
union | uint16_BitTypeDef
union | uint32_BitTypeDef
union | uint64_BitTypeDef

## Macros
#define | uint8_bit(_uint8_, _bit_)
| Получить n-й бит из uint8_t.
#define | uint16_bit(_uint8_, _bit_)
| Получить n-й бит из uint16_t.
#define | uint32_bit(_uint8_, _bit_)
| Получить n-й бит из uint32_t.
#define | uint64_bit(_uint8_, _bit_)
| Получить n-й бит из uint64_t.

## Detailed Description

Макросы и typedef'ы для работы с битами в unsigned типах.

В этом файле определены макросы для получения значения конкретного бита^

- uint8_bit
- uint16_bit
- uint32_bit
- uint64_bit

Особенности использования:

- Индекс бита должен быть константой на этапе компиляции. Пример верного использования:
  uint8_t val = 0x05;
  uint8_t b2 = uint8_bit(val, 2); // Получить бит 2
  uint8_bit(val, 6) = 1; // Записать бит 6
  uint8_bit
  #define uint8_bit(_uint8_, _bit_)
  Получить n-й бит из uint8_t.
  Definition bit_access.h:129
- Нельзя использовать переменные в качестве индекса:
  uint8_t i = 2;
  uint8_bit(val, i); // Не сработает!
- Макросы возвращают 0 или 1.
- Доступ реализован через приведение к union с битовыми полями, поэтому это безопасный способ работы с отдельными битами без ручного сдвига и маскирования.

## Macro Definition Documentation

## ◆ uint8_bit

#define uint8_bit | ( |  | _uint8_,
|  |  | _bit_ )

Value:
(*(uint8_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
uint8_BitTypeDef
Definition bit_access.h:40

Получить n-й бит из uint8_t.

Parameters

  _uint8_ | Переменная типа uint8_t
  _bit_ | Константный номер бита (0..7)

Returns
  Значение выбранного бита (0 или 1)

Note
  Индекс бита должен быть известен на этапе компиляции!

Definition at line 129 of file bit_access.h.

## ◆ uint16_bit

#define uint16_bit | ( |  | _uint8_,
|  |  | _bit_ )

Value:
(*(uint16_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
uint16_BitTypeDef
Definition bit_access.h:56

Получить n-й бит из uint16_t.

Parameters

  _uint16_ | Переменная типа uint16_t
  _bit_ | Константный номер бита (0..15)

Returns
  Значение выбранного бита (0 или 1)

Note
  Индекс бита должен быть известен на этапе компиляции!

Definition at line 137 of file bit_access.h.

## ◆ uint32_bit

#define uint32_bit | ( |  | _uint8_,
|  |  | _bit_ )

Value:
(*(uint32_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
uint32_BitTypeDef
Definition bit_access.h:81

Получить n-й бит из uint32_t.

Parameters

  _uint32_ | Переменная типа uint32_t
  _bit_ | Константный номер бита (0..31)

Returns
  Значение выбранного бита (0 или 1)

Note
  Индекс бита должен быть известен на этапе компиляции!

Definition at line 145 of file bit_access.h.

## ◆ uint64_bit

#define uint64_bit | ( |  | _uint8_,
|  |  | _bit_ )

Value:
(*(uint64_BitTypeDef *)(&(_uint8_))).bit.bit##_bit_
uint64_BitTypeDef
Definition bit_access.h:98

Получить n-й бит из uint64_t.

Parameters

  _uint64_ | Переменная типа uint64_t
  _bit_ | Константный номер бита (0..63)

Returns
  Значение выбранного бита (0 или 1)

Note
  Индекс бита должен быть известен на этапе компиляции!

Definition at line 153 of file bit_access.h.