Wert nach struct schreiben
-
Hallo,
wie kann ich einen Wert in eine Structure Schreiben?
struct
{
unsigned overvoltage :2; //Bitfeld bit 0..1
unsigned undervoltage :2; //bit 2..3
unsigned :4; //bit 4..7 unused
}AlarmByte1;AlarmByte1 = 0x80;
Ergibt die Fehlermeldung "Cannot convert 'int' to 'struct'
AlarmByte1.overvoltage = 1;
Funktioniert natürlich, doch ich bekomme den Alarmstatus von einem
Controller via rs232 in dem die bits für die Alarme gesetzt sind und möchte das empfangene Byte direkt in die Structure schreiben.
Gruß
Johann
-
du könntest den operator= überladen und dort dann das byte auf die einzelnen bits
schreiben.
-
union { struct { unsigned char bnv_on_off :2; unsigned char charge_malfunction_indicator_on_off :2; unsigned char acknowledge_of_voltage_demand :2; unsigned char acknowledge_of_current_demand :2; }bits; unsigned char byte; }status_byte1;
status_byte1.byte = 0xf0;
status_byte1.bits.bnv_on_off = 1;Funktioniert
Vielen Dank