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 | |
2 | |
3 | |
4 | |
5 | |
Fuer die Ports sind nur Zahlen definiert. Lies dazu auch mal den Artikel Bitmanipulation. Fuer was brauchst du das ganze ueberhaupt? MfG NIMRA
Gast
#1810995
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.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.