Forum: Compiler & IDEs AVR device ID in GCC header?


von kxr (Gast)


Lesenswert?

Die device signature der AVR kann man ja per Software nicht auslesen. 
Gibts vordefinierte numerische IDs abhängig von der MCU Angabe beim 
Kompilieren irgendwo in den AVR-GCC header files? oder muß man selbst 
welche mit einer #ifdef Litanei erfinden?

Grüße

von Stefan E. (sternst)


Lesenswert?

kxr schrieb:
> Die device signature der AVR kann man ja per Software nicht auslesen.

Neuere AVRs können das sehr wohl. Um welche geht es denn konkret?

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


Lesenswert?

Was willst du denn mit einer "numerischen Device-ID", willst du
vergleichen, welcher AVR größer als der andere ist? ;-)

Vordefiniert (durch den Compiler) sind Makros wie
1
__AVR_ATmega333__

Das <avr/io.h> enthält ja die signature-Werte, du kannst die
natürlich zu einer Zahl vereinigen:
1
#include <avr/io.h>
2
#define AVR_NUMBER ((SIGNATURE_0 << 16UL) | (SIGNATURE_1 << 8UL) | SIGNATURE_2)

von kxr (Gast)


Lesenswert?

Stefan Ernst schrieb:
> kxr schrieb:
>> Die device signature der AVR kann man ja per Software nicht auslesen.
>
> Neuere AVRs können das sehr wohl. Um welche geht es denn konkret?

der Witz ist ja dass die SW / Lib recht unabhängig sein soll, quasi 
unkonkret. Aber z.B. einer PC-Remote-Software den Chip-Typ melden können 
soll.

Jörg Wunsch schrieb:
> Das <avr/io.h> enthält ja die signature-Werte, du kannst die
> natürlich zu einer Zahl vereinigen:
> #include <avr/io.h>
> #define AVR_NUMBER ((SIGNATURE_0 << 16UL) | (SIGNATURE_1 << 8UL) | SIGNATURE_2)

danke, genau das hab ich gesucht!

War in WinAVR-20071221, den ich kürzlich als optimalen (kurzer Code) 
ausgewählt hab, aber noch nicht drin. Im neuesten WinAVR nun drin.

Gruß

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.