mikrocontroller.net

Forum: Compiler & IDEs hilfe beim präprozessor


Autor: jack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Uwe ... (uwegw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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
__AVR_ATmega8__
 bzw.
__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.

Autor: jack (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke Uwe,
dachte das ich die schreibweise wie im makefile
verwenden muss oder kann.

   jack

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.