Forum: Compiler & IDEs Bitfeld an PORTD zuweisen


von mr.chip (Gast)


Lesenswert?

Hallo

struct{
  unsigned char on_left:1;
  unsigned char on_right:1;
  unsigned char long_left:1;
  unsigned char long_right:1;
  unsigned char up:1;
  unsigned char longup:1;
} flags_servos;

PORTB = (uint8_t)flags_servos;

Der Compiler meint dazu:

error: aggregate value used where an integer was expected

Wie kann ich das zum Laufen brigen? Ich will also das Bitfeld direkt
nach PORTD bringen.

Gruss

Michael

von Εrnst B. (ernst)


Lesenswert?

1
union {
2
 struct{
3
  unsigned char on_left:1;
4
  unsigned char on_right:1;
5
  unsigned char long_left:1;
6
  unsigned char long_right:1;
7
  unsigned char up:1;
8
  unsigned char longup:1;
9
 };
10
 uint8_t als_byte
11
} flags_servos;
12
13
PORTD=flags_servos.als_byte;

/Ernst

von mr.chip (Gast)


Lesenswert?

Vielen Dank, es funktioniert jetzt! ;-)

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.