Я изучаю микроконтроллеры, и мне трудно понять, как можно использовать объединение для установки отдельных битов на порту gpio.
typedef union _BYTE
{
byte _byte;
struct
{
unsigned b0:1;
unsigned b1:1;
unsigned b2:1;
unsigned b3:1;
unsigned b4:1;
unsigned b5:1;
unsigned b6:1;
unsigned b7:1;
}Bit;
} BYTE;
Я использую вышеупомянутое, чтобы получить доступ к отдельным битамбайта, но как я могу использовать это для назначения значений порта io следующим образом?
MCF_GPIO_PORTDD.Bit.b0 = 1;
Я бы не стал выделять тип _BYTE, а затем назначил бы ему порт.
#define MCF_GPIO_PORTDD (*(vuint8 *)(&__IPSBAR[0x100009]))
MCF_GPIO_PORTDD - это просто адрес памяти.