PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : WinAVR: Probleme mit Bitfield



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 ? ](*,)

uwegw
30.09.2007, 17:51
Der Rest wird nicht initialisiert.

DerMarkus
30.09.2007, 19:12
Du hast Recht. Der Rest wird nicht initialisiert. Aber wenn ich einem Bit einen Wert zuweise, dürfen sich nicht alle ändern. Noch jemand einen Tip ?

DerMarkus
01.10.2007, 16:26
Hat sich geklärt. Der AVRStudio Debugger zeigt es nur falsch an.