-
-
Erfahrener Benutzer
Robotik Einstein
Klaro, aber daß bei
PORTB = / &= / |=
ein 'illegal lvalue in assignment' kommt, ist recht ungewöhnlich.
Bei PB3 = ... ist das klar, weil PB3 eine Konstante ist und auflöst zu
3 = ..., was ja auch Käse ist.
Richtig ist zB
PORTB |= _BV(PB3);
Übrigens empfiehlt es sich, die Port-Definitionen an einer _einzigen_ Stelle in der Quelle zu halten, damit man beim Ändern eines Ports (zB von PortB.0 auf PortD.2) wirklich nur 1(!) Stelle im Code ändern muss, was erforderlich ist, wenn man das Design ändet und man ein anderes Layout der I/O-Pins verwendet.
Tückisch wird es sonst, weil mindestens 3 Register zu einem Port(pin) gehören, typischer weise
- PORTx (Ausgang, Pullups)
- PINx (Eingang)
- DDRx (Richtung)
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen