mikrocontroller.net

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


Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
switch (TWI_device & 0x1){...

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

Jemand 'ne Idee woran das liegen könnte?

Autor: Zulu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ist denn TWI_device deklariert?

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
volatile unsigned char TWI_device=0;

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Autor: Joe (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.