Forum: Compiler & IDEs Int auf Bit-Struct abbilden


von Malte (Gast)


Lesenswert?

Moin,
in meinem Prog. empfange ich über SPI 2 Byte die ich in einen Int. 
werfe.
Den Wert dieses Int. lenke ich dann über Zeiger in ein Bit-Struct. So 
dass ich einfach drauf zugreifern kann.. Funktioniert auch alles gut, 
nur wie mache ich das so elegant, das der Compiler nicht meckert? 
"warning: assignment from incompatible pointer type"

Der Code:
int recivedio=0;

struct test
{   unsigned char Leerstellen:4;
  unsigned char OCA:1;
    unsigned char OCB:1;
    unsigned char OLA:1;
  unsigned char OLB:1;
  unsigned char OCHS:1;
  unsigned char UV:1;
  unsigned char OTPW:1;
  unsigned char OT:1;
  unsigned char reserved1:1;
  unsigned char Last:3;
} MotorStatus,*zeigerStatus;

main() {
....
        zeigerStatus = &recivedio;
   MotorStatus =*zeigerStatus;
....


Danke Malte

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Die Warnung kannst du unterdrücken, in dem du einen Cast einflickst.

zeigerStatus = (struct test *) &recivedio;

Hast du mal überlegt, die int Variable recivedio und die struct test 
Variable MotorStatus in die gleiche Union zu stecken und so den 
Zeiger zeigerStatus ganz zu eliminieren?

PS: Es heisst receive (engl. In Empfang nehmen, empfangen) nicht 
recive.

von Malte (Gast)


Lesenswert?

Mahlzeit,
danke für die Anregungen. Auch der Rechtschreibfehler ist nun behoben...

Malte

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.