hallo, versuche gerade in meinem programm zwischen atmega8 und atmega16 den port für meine anzeige zu wechseln. #if defined(atmega8) #include <avr\iom8.h> #define Portdisplay PORTC #elif defined(atmega16) #include <avr\iom16.h> #define Portdisplay PORTA #endif leider bekomme ich eine fehlermeldung, dass mein portdisplay nicht bekannt ist. könnte mir jemand helfen besten dank jack
Aber atmega8 ist irgendwo definiert? Wenn keine der beiden Bedingungen wahr ist, wird auch nichts für Portdisplay definiert. Ich würde da noch einen else-Teil einfügen, der in diesem Fall nen #error ausgibt. Falls du diese Konstanten gar nicht selbst definierst, sondern diese Information aus dem Makefile (MCU=...) kommen soll: Diese Angabe im makefile legt die Konstanten
1 | __AVR_ATmega8__
|
bzw.
1 | __AVR_ATmega16__ an. |
Und die ioxxx.h sollte man auch nie direkt includen, sondern nur die io.h. Die wählt dann auch über so eine Precompiler-Weiche die richtige Datei aus.
danke Uwe, dachte das ich die schreibweise wie im makefile verwenden muss oder kann. jack
so ist es ganz hübsch... [c] #if defined (_AVR_ATmega8_) #define PORTDISPLAY PORTA #elif defined (_AVR_ATmega16_) #define PORTDISPLAY PORTB #else #error Nur ATMega8 und 16 werden unterstützt #endif
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.