Forum: Mikrocontroller und Digitale Elektronik Fehler bei UND-Verknüpfung: integral expression required


von Joe (Gast)


Lesenswert?

Guten Abend!

Ich habe folgendes Problem. Ich möchte das letzte Bit der TWI-Adresse 
abspalten, um entschweiden zu können ob gelesen oder geschrieben werden 
soll.

Das führt zu der Fehlermeldung : integral expression required
1
switch (TWI_device & 0x1){...

Komischer weise geht aber z.B. das:
1
switch (TWI_device & 0x2){...

Jemand 'ne Idee woran das liegen könnte?

von Zulu (Gast)


Lesenswert?

Wie ist denn TWI_device deklariert?

von Joe (Gast)


Lesenswert?

1
volatile unsigned char TWI_device=0;

von Uhu U. (uhu)


Lesenswert?

Erklärt zwar das von dir beschriebene Verhalten nicht (Angaben zu 
dürftig): Ein einziges Bit in einem switch testen? Nimm lieber if 
stattdessen.

von Karl H. (kbuchegg)


Lesenswert?

zeig mal etwas mehr Codeausschnitt rund um die interessante Stelle. Bis 
jetzt gibt es noch keinen Grund für diese Fehlermeldung

von Joe (Gast)


Lesenswert?

Hinter TWI_device stecken verschiedene Adressen für TWI-ICs. Ist ist ja 
so, dass das LSB in der Adresse bestimmt, ob ein Schreibzugriff oder ein 
Lesezugriff erfolgen soll. An dieser Stelle soll dann die 
Fallunterscheidung stehen. Komisch ist hal, dass es nur mit 0x1 nicht 
geht. MIt 0x2 bis 0xFF geht es.

von Uhu U. (uhu)


Lesenswert?

Joe wrote:
> Hinter TWI_device stecken verschiedene Adressen für TWI-ICs. Ist ist ja
> so, dass das LSB in der Adresse bestimmt, ob ein Schreibzugriff oder ein
> Lesezugriff erfolgen soll. An dieser Stelle soll dann die
> Fallunterscheidung stehen. Komisch ist hal, dass es nur mit 0x1 nicht
> geht. MIt 0x2 bis 0xFF geht es.

Kannst dus nicht etwas päziser machen, oder willst du keine Antwort?

von Karl H. (kbuchegg)


Lesenswert?

Die Fehlermeldung 'integral expression required' kann auch auf einen 
Fehler bei einem der case Labels hinweisen

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.