"defined (__AVR_ATtiny85__)" oder "defined (__ATtiny85__)"

Moderator Persönliche Seite #2822696
Lesenswert?

Simon K. schrieb:

> Aufpassen. Die Rauten müssen bei Präprozessorbefehlen immer das erste
> Zeichen in der Zeile sein.

Nein, schon lange nicht mehr.  Es ist lediglich gefordert, dass
davor höchstens white space steht.

Aber aufpassen an anderer Stelle: Makros, die mit zwei Unterstrichen
beginnen, sind reservierte Bezeichner.  Wenn schon also:
1
#if defined(__AVR_ATtiny85__)
2
#  define IS_ATTINY85
3
#elif defined(__ATtiny85__)
4
#  define IS_ATTINY85
5
#else
6
#  error "Unknown MCU type"
7
#endif
8

9
...
10

11
#ifdef IS_ATTINY85
12
...
13
#endif
OP #2822999
Lesenswert?

Um es nochmal genauer zu erklären.
Ich denke es gibt von Atmel noch mehr Codeschnipsel die alle mit
so Makros wie #ifdef defined(_ATtiny85_) anfangen weil sie eventuell 
an IAR zugeschnitten sind?

Es wäre toll so eine #include Datei zu haben die
aus Makros wie obigem besteht.
1
#if defined(__AVR_ATtiny85__)
2
#  define IS_ATTINY85
3
#elif defined(__ATtiny85__)
4
#  define IS_ATTINY85
5
#else
6
#  error "Unknown MCU type"
7
#endif
8

9
...
10

11
#ifdef IS_ATTINY85
12
...
13
#endif

Könnte doch grundsätzlich klappen oder?

Ob das was für die Profis, ist ist eine andere Frage ;)

oh ich glaube da gibs was von atmel ?
http://www.ece.cmu.edu/~ece549/spring08/team6/healthnet/avr/rdk230wpan-1.5/src/inc/mcu_types.h

Gruss,

Jörg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren