Einen allgemeinen Namen für alle PORTś definieren?

OP #1810943
Lesenswert?
• ▲
▼
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);
   }
#1810949
Lesenswert?
• ▲
▼
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
Gast #1810995
Lesenswert?
• ▲
▼
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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.