Frage zu einer bedingten Verknüpfung

OP #2385699
Lesenswert?
• ▲
▼
Hallo!

Ich möchte folgende Abfrage stellen:
1
if ((address_request == 2) && (EEPROM_read_value != 0xFF) && (EEPROM_read_value != 0xFE) )

Also:
Nur wenn address_request 2 ist und EEPROM_read_value einen Wert (außer 
0xFF oder 0xFE) hat, soll die if-Abfrage ausgeführt werden.

Und das macht sie leider nicht.

Wo liegt hier der Fehler?

Danke für Eure Hilfe!
Gast #2385732
Lesenswert?
• ▲
▼
Hat dort vielleicht die Optimierung deines Compilers aufgeräumt. Aus 
einer Zeile Code ist das leider nicht erkennbar.

Mit der Formulierung
1
if ((address_request == 2) && ((EEPROM_read_value & 0xFE) != 0xFE)
passiert wahrscheinlich das Gleiche?
OP #2385796
Lesenswert?
• ▲
▼
Ich habe die Art der Abfrage geändert, und frage gleich den EEPROM 
Inhalt ab. Ist dieser ungleich 0xFF, dann existiert eine weitere Adresse 
im EEPROM und darf abgefragt werden.
1
if ( (address_request == 2) && (eeprom_read_byte(EEPROM_read_address ) != 0xFF) )
2
                {
3
                  Cube_high_byte   = eeprom_read_byte(EEPROM_read_address);  // Read value from EEPROM (Cube highbyte)
4
                  EEPROM_read_address ++;
5
                  Cube_low_byte   = eeprom_read_byte(EEPROM_read_address);  // Read value from EEPROM (Cube lowbyte)
6
                  EEPROM_read_address ++;
7

8
                  EEPROM_read_value = eeprom_read_byte(EEPROM_read_address);  // Check the next value
9
                  // If this value == FF, no further address exist!
10
                  // If this value != FF, another addres exist!
11

12
                  change_TX_address(Cube_high_byte, Cube_low_byte);
13
                  change_RX0_address(Cube_high_byte, Cube_low_byte);
14

15
                  address_request = 0;
16

17
                  wdt_reset();              // reset watchdog
18
                }

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren