www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Einen allgemeinen Namen für alle PORTś definieren?


Autor: E. L. (robo-man)
Datum:

Bewertung
0 lesenswert
nicht 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);
   }

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Armin S. (nimra)
Datum:

Bewertung
0 lesenswert
nicht 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
#define PA1     1
#define PA2     2
[...]
#define PB1     1
#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

Autor: Maxx (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.