В данном случае произвольно портится флаг ResultStruct.Status.Valve.Power. Из программы были убраны все обращения к этой структуре, кроме обращения к флагам. Программа заработала только после того, как union для флагов был вытащен из структуры. Но мне необходимо, чтобы флаги находились в структуре. Поэтому видимо придется работать с байтом через маски?
Код
struct
{
uint16_t VoltageOff;
uint16_t CurrentOff;
uint16_t VoltageOn;
union
{
uint16_t Word;
union
{
uint8_t Byte;
struct
{
uint8_t Power:1;
uint8_t On:1;
uint8_t Full:1;
};
}Valve;
union
{
uint8_t Byte;
struct
{
uint8_t On:1;
uint8_t Full:1;
};
}Ready;
}Status;
}ResultStruct;
{
uint16_t VoltageOff;
uint16_t CurrentOff;
uint16_t VoltageOn;
union
{
uint16_t Word;
union
{
uint8_t Byte;
struct
{
uint8_t Power:1;
uint8_t On:1;
uint8_t Full:1;
};
}Valve;
union
{
uint8_t Byte;
struct
{
uint8_t On:1;
uint8_t Full:1;
};
}Ready;
}Status;
}ResultStruct;