mikrocontroller.net

Forum: Compiler & IDEs avr-libc ports in enumeration


Autor: kosmonaut pirx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
die in den jeweiligen ioxxxx.h-dateien aufgelisteten port-definitionen
möchte ich gerne in ein Enumeration packen. Vorstellen tue ich mir in
etwa so etwas:

struct UARTS_REGISTER{
  enum {SR0_A = UCSR0A,
  SR0_B = UCSR0B,
  SR0_C = UCSR0C,
  SR1_C = UCSR1A,
  SR1_B = UCSR1B,
  SR1_C = UCSR1C};
};

Nun funktioniert das nicht, da die symbolischen Namen lediglich  Makros
zur Dereferenzierung von Pointern auf die jeweiligen adressen sind. Ein
einfaches erneutes Referenzieren funktioniert nicht, kann auch nicht,
wenn man sich in die situation des präcompilers versetzt.

avr-libs-version:
#define _AVR_LIBC_VERSION_STRING_ "1.4.4"

Hat jemand eine Idee und/oder kann mir weiterhelfen, wie ich ein
derartiges enum aufbaue? da dort nur konstanten rein kommen können,
wären die adressen dafür prädesiniert, aber diese extra neu einzutippen
erscheint mir nicht gerade sinnvoll.

An dieser Stelle ein schönes WE im voraus,
bye kosmo

Autor: kosmonaut pirx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tut mir leid, versehentlich reload erwischt. entschuldigung!

Autor: Joe Die (kosmonaut_pirx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der vollständigkeit halber: ok, ich hab's.

man definiere ein
#define _SFR_ASM_COMPAT 1

typischer fall von rtfm, in diesem falle der sfr_defs.h

danke trotzdem,
bye kosmo

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, ist 'ne ziemliche Krücke.

Autor: Joe Die (kosmonaut_pirx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist umständlich, ich weiß. aber sollte erst einmal funktionieren, bis
eine bessere lösung erkennbar wird.

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.