Hallo, meine Frage steht eigentlich schon im Titel. Kann man eigentlich für alle Ports (PORTA, PORTB, PORTC.....) einen und denselben namen definieren z.B. OUT. Wenn ja wie? Wäre sehr dankbar. So funktionierts auf jedenfall nicht: #define OUT PORTA #define OUT PORTB #define OUT PORTC while (1) // Mainloop { OUT |= (1<<PA2); }
Alex L. schrieb: > Kann man eigentlich > für alle Ports (PORTA, PORTB, PORTC.....) einen und denselben namen > definieren z.B. OUT. Wenn ja wie? Das geht nicht.
So wie du es versuchst, kann es auch gar nicht gehen. In der iom16.h (wird automatisch ueber io.h eingebunden wenn Atmega16 verwendet wird, nur mal als Beispielcontroller, bei jedem anderen analog dazu) vom avr-gcc z.B. hast du die Zeilen
1 | #define PA1 1
|
2 | #define PA2 2
|
3 | [...]
|
4 | #define PB1 1
|
5 | #define PB2 2
|
Fuer die Ports sind nur Zahlen definiert. Lies dazu auch mal den Artikel Bitmanipulation. Fuer was brauchst du das ganze ueberhaupt? MfG NIMRA
Du wirst dir da wohl einfach eine (inline) Funktion zum Setzen/Löschen von Bits aller Ports bauen müssen. Für reine left-assignes würd es gehten (ala ALL = 123). Damit wirst du allerdings nicht glücklich, da |=, &= etc bzw alles bei dem der Ausdruck auf der rechten Seite des Gleichheitszeichen auftaucht damit nicht verwendet werden kann.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.