Этот код предназначен для драйвера для микросхемы ЦАП .
У меня есть битовое поле ниже, которое представляет 24-битный регистр. Итак, что мне нужно сделать, это заполнить битовое поле и записать его через SPI в чип.
typedef struct {
uint8_t rdwr_u8: 1;
uint8_t not_used_u8: 3;
uint8_t address_u8: 4;
uint8_t reserved_u8: 8;
uint8_t data_u8: 8;
uint8_t padding_u8: 8;
} GAIN_REG_st;
В своей функции инициализации я создаю объединение, как показано ниже.
union{
GAIN_REG_st GAIN_st;
uint32_t G_32;
} G_u;
Теперь мне нужно передать битовое поле GAIN_REG_st функции, которая будет его заполнять.
После заполнения я могу присвоить битовое поле 32-битному целому числу и передать это целое число в функцию низкого уровня для записи через SPI.
Как передать битовое поле GAIN_REG_st функции, когда оно находится внутри объединения? (Можете ли вы показать прототип и вызов функции)?
Как функция обращается к членам битового поля? (это было бы похоже на G_u.GAIN_st.rdwr_u8 = 1
?)