Im Makefile steht diese Zeile: MCU_TARGET = attiny2313 Wie kann ich zur Übersetzungszeit den Wert von MCU_TARGET abfragen. Mit "#ifdef attiny2313" klappt es nicht.
>Wie kann ich zur Übersetzungszeit den Wert von MCU_TARGET abfragen.
Schau in die avr/io.h
TinyAVR schrieb: > Im Makefile steht diese Zeile: > > MCU_TARGET = attiny2313 > > Wie kann ich zur Übersetzungszeit den Wert von MCU_TARGET abfragen. > > Mit "#ifdef attiny2313" klappt es nicht. Warum willst du den Wert denn abfragen?
TinyAVR schrieb: > Im Makefile steht diese Zeile: > > MCU_TARGET = attiny2313 > > Wie kann ich zur Übersetzungszeit den Wert von MCU_TARGET abfragen. > > Mit "#ifdef attiny2313" klappt es nicht. Dann müsstest du auch MCU_TARGET abfragen... Aber wie Holger schrieb, kannst du das ganz gut in der io.h abschauen ( #ifdef _tiny3213_ oder so ähnlich). Gruß, Daniel
TinyAVR schrieb: > Im Makefile steht diese Zeile: > MCU_TARGET = attiny2313 Diese Zeile steht da auch. Der wichtigere Fakt ist, daß der Wert der make-Variable MCU_TARGET an den Compiler mit der Compiler-Option -mmcu=... übergeben wird. > Wie kann ich zur Übersetzungszeit den Wert von MCU_TARGET abfragen. Direkt gar nicht. Aber der Wert wird an den avr-gcc übergeben, der daraus ein Präprozessor-Makro macht. Die offizielle Zuordnung von -mmcu=... Option und Makro kann man hier einsehen: http://www.nongnu.org/avr-libc/user-manual/using_tools.html Konkret findet man für -mmcu=attiny2313 das Präprozessor-Makro
1 | __AVR_ATtiny2313__
|
und auf dieses Makro kann man dann im C-Code testen
das hier klappt prima:
1 | #if defined(__AVR_ATmega328P__)
|
2 | DEBUG_PRINTLN(F("auf nanoV3 oder proMINI auf 328p")); |
3 | #elif defined(__AVR_ATmega1284P__)
|
4 | DEBUG_PRINTLN(F("auf migthy m1284p")); |
5 | #endif
|
Vielen Dank für Link & Informationen. Jetzt funktioniert es :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.