DerMarkus
30.09.2007, 16:37
Hallo zusammen,
ich habe ein Problem mit Bitfields & WinAVR. Hier mein Code:
typedef struct
{
unsigned char m_reserved : 4;
unsigned char m_initFailed : 1;
unsigned char m_magxFailed : 1;
unsigned char m_magyFailed : 1;
unsigned char m_magzFailed : 1;
} stMagxMagyMagzStatus;
int main( void )
{
stMagxMagyMagzStatus test;
test.m_magzFailed = 1;
return 0;
}
Nachdem die Zuweisung ausgeführt wurde steht an der Speicherstelle 0x01. Allerdings zeigt mir der Debugger an, das alle Struct Elemente auf 0x01 sind. D.h. wenn ich versuche ein Bit zu setzten werden gleich alle gesetzt ?! Ich sehe gerade irgendwie den Fehler nicht. Irgendwelche Tips ? ](*,)
ich habe ein Problem mit Bitfields & WinAVR. Hier mein Code:
typedef struct
{
unsigned char m_reserved : 4;
unsigned char m_initFailed : 1;
unsigned char m_magxFailed : 1;
unsigned char m_magyFailed : 1;
unsigned char m_magzFailed : 1;
} stMagxMagyMagzStatus;
int main( void )
{
stMagxMagyMagzStatus test;
test.m_magzFailed = 1;
return 0;
}
Nachdem die Zuweisung ausgeführt wurde steht an der Speicherstelle 0x01. Allerdings zeigt mir der Debugger an, das alle Struct Elemente auf 0x01 sind. D.h. wenn ich versuche ein Bit zu setzten werden gleich alle gesetzt ?! Ich sehe gerade irgendwie den Fehler nicht. Irgendwelche Tips ? ](*,)