Verriegelung und lvalue-Fehler

OP #2839045
Lesenswert?

hallo leute,

ich hab folgende struktur:
1
if ((Start) && !(RefPunkt_IND1) && !(RESERVE_IND1))              // Taster Start verriegelt gegen RefPunkt und Reserve
2
      { PROG_IND1; }

beim übersetzen bekomme ich die fehlermeldung:
Error: lvalue required as left operand of assignment

ich werd aber nciht schlau aus dem fehler.


was ich will ist eine verriegelung:
wenn taster gedrückt und nicht pin 1 und nicht pin 2 dann tu irgendwas

Start, Refpunkt_IND1 und RESERVE_IND1 und prog_int1 sind definitionen 
und so definiert:
1
#define bedienpanel PIND              // Ausgangsport D
2
#define Start bit_is_clear(bedienpanel,3)    // Taster-Start                           
3

4
#define RefPunkt_IND1 PORTB|=(1<<2)          // Referenzpunktfahrt LED an
5
#define RefPunkt_IND0 PORTB&=~(1<<2)        // Referenzpunktfahrt LED aus
6

7
#define  RESERVE_IND1 PORTB|=(1<<3)          // RESERVE LED an
8
#define  RESERVE_IND0 PORTB&=~(1<<3)        // RESERVE LED aus

und noch eine frage zwecks programmierung:

z.b. #define RefPunkt_IND0 PORTB&=~(1<<2)
kann man das irgendwie umschreiben, dass es auch funktioniert mit 
leerzeichen?

-> #define RefPunkt_IND0 PORTB &= ~(1<<2)  <- so würde ich das 
normalerweise schreiben

gruß sven
OP #2839066
Lesenswert?

Prog_IND1 ist ein port -> PROG_IND1 PORTB|=(1<<1)

dachte der wäre für den Fehler hier unwichtig.

Wie kann man es denn umschreiben mit leerzeichen? weil übersetze ich es 
MIT leerzeichen funktioniert es nicht!


./. schrieb:
> Das sind Zuweisungen und keine Abfragen, also immer wahr, bzw. falsch
> (da negiert).

ich möchte ieg abfragen, ob ein pin gesetzt ist oder nicht, also ist
RefPunkt_IND1 = 1 oder nicht.

aber ich glaube ich seh das problem. ich rage eine zuweisung ab, nicht 
den status vom pin

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