mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik WinAVR Bitzuweisung


Autor: ABSimon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

ich versuche gerade, da die Lizenz von ISP ablauft auf WinAVR
umzusteigen. Soweit ok, nur tritt hier ein Fehler auf
Bitzuweisung.
#define LCDDATA0  PB0
#define LCDDATA1  PB1
#define LCDDATA2  PB2
#define LCDDATA3  PB3
#define LCDDATA4  PB4
#define LCDDATA5  PB5
#define LCDDATA6  PB6
#define LCDDATA7  PB7

data = 0x38;

LCDDATA0 = data;
LCDDATA1 = data >>1;
LCDDATA2 = data >>2;
LCDDATA3 = data >>3;
LCDDATA4 = data >>4;
LCDDATA5 = data >>5;
LCDDATA6 = data >>6;
LCDDATA7 = data >>7;

LCDDATA1 = data >> 1

ergibt immer einen Fehler, kann ich das einfach
mit
LCDDATA2 |= (2 << data)

übersetzen, und ebenso dann auch
LCDDATA0 = data; 

zu
LCDDATA0 |= (0 << data)

???

Wohl nicht oder. Weiß jemand wie hier die richtige Syntax für
WINAVR wäre?

Danke & Viele Grüße aus Neuss
ABSimon

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>LCDDATA1 = data >> 1

Ja, muss ja eine Fehler geben.
LCDATA1 ist ja mit PB0 gleichgesetzt.

Und PB0 wurde mit 0 definiert. Also steht da:

>LCDDATA1 = data >> 1

    0     = 0x38>>1 = 0x19

Und das stimmt ja nicht.

Autor: ABSimon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

hatte ich vergessen, vorab wird
DDRB  = 0b11111111;
PORTB = 0b11111111;

gesetzt. Dieser Fehler wird ausgegeben:
error: lvalue required as left operand of assignment

"Linker Wert erforderlich beim linken Zuweisungs-Operanden."

Kennt das jemand, was mache ich falsch, wie werden ansonsten
bei Variablen einzelne Bits anderen Variablen zugewiesen.

Danke & Viele Grüße
ABSimon

Autor: Volker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube, dass du hier fündig wirst:

Beitrag "Bitzuweisung eines PortPins"

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.