Forum: Compiler & IDEs avr-libc ports in enumeration


von kosmonaut pirx (Gast)


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

von kosmonaut pirx (Gast)


Lesenswert?

tut mir leid, versehentlich reload erwischt. entschuldigung!

von Joe D. (kosmonaut_pirx)


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

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Naja, ist 'ne ziemliche Krücke.

von Joe D. (kosmonaut_pirx)


Lesenswert?

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

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
Noch kein Account? Hier anmelden.