Forum: Mikrocontroller und Digitale Elektronik Fehler im Programm (Grundlagen mC Programmierung)


von Hüseyin A. (husox81)


Lesenswert?

Hallo Zusammen,

unter diesem CODE kriege ich diese Fehlermeldung:
- "lvalue required as left operand of assignment"

Wo liegt der Fehler???

Danke im vorraus!

husox81



#include <avr/io.h>


// Definitionen E/A
#define EINGANG      PORTA
#define E0        (1<<PA0)
#define E1        (1<<PA1)
#define E2        (1<<PA2)
#define E3        (1<<PA3)
#define E4        (1<<PA4)
#define E5        (1<<PA5)
#define E6        (1<<PA6)
#define E7        (1<<PA7)

#define AUSGANG      PORTB
#define A0        (1<<PINB0)
#define A1        (1<<PINB1)
#define A2        (1<<PINB2)
#define A3        (1<<PINB3)
#define A4        (1<<PINB4)
#define A5        (1<<PINB5)
#define A6        (1<<PINB6)
#define A7        (1<<PINB7)

// Definitionen Befehle
#define FALSE      0
#define TRUE      1

// Hauptprogramm
int main (void)
{

  DDRA   = 0x00;
  DDRB   = 0xff;
  PORTB   = 0xff;

     while(1)
     {
       if (E0 == TRUE)
    {
      A0 = TRUE;
    }

    else if (E0 == FALSE)
    {
      A0 = FALSE;
    }
     }


     return 0;
}

von Oliver (Gast)


Lesenswert?

Hüseyin Aydingünes schrieb:
> - "lvalue required as left operand of assignment"

Vielleicht verrätst du uns auch noch, in welcher Zeile der Fehler 
auftritt.

Oliver

von g457 (Gast)


Lesenswert?

Ich rate mal: Zeile 42!

(Tatsächlich ists ab Zeile 41.. schade, hätte fast gepasst).

> #define A0        (1<<PINB0)
[..]
> A0 = TRUE;

So wird das nix, versuchs mal mit
  PORTB |= A0;

HTH

von Otto (Gast)


Lesenswert?

Davon abgesehen, dass "PIN" für die Abfrage von Eingängen dient.

von Christian D. (chris83)


Lesenswert?

Du willst hier den Zustand des Ports abfragen der natürlich  als Eingang 
geschaltet sein sollte.
In deinem Code versuchst du allerdings
(1<<PINB0) den Wert 1 zu zuweisen.
Was natürlich nicht geht.

Falls du aber ihn als Ausgang nutzen willst ist (1<<PINB0) die faschle 
Wahl, dafür ist (1 << PB0) zuständig

Grüße

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.