Forum: Compiler & IDEs Frage zu <avr/io.h>


von Mathias O. (m-obi)


Lesenswert?

Hallo,

wenn ich einen Atmega16 verwende muss ich dann auch '#include 
<avr/io.h>', so wie bei jeden Atmega? Und wenn ja, woher weiß er dann, 
was man für einen µC verwendet?

von Falk B. (falk)


Lesenswert?

@ Mathias Obetzhauser (Firma Phoenix Contact) (m-obi)

>wenn ich einen Atmega16 verwende muss ich dann auch '#include
><avr/io.h>', so wie bei jeden Atmega?

Ja.

> Und wenn ja, woher weiß er dann, was man für einen µC verwendet?

Das wird ihm über das makefile mitgeteilt, das macht AVR-Studio 
automatisch.

MFg
Falk

von Mathias O. (m-obi)


Lesenswert?

oder wie bei mir mit Makefile von WinAVR. ;) jetzt weiß ich wofür das 
gut ist.

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


Lesenswert?

Genauer gesagt: die -mmcu-Option veranlasst den Compiler, einen
Makro für deinen Prozessor zu definieren im C-Präprozessor.  Wenn
du also -mmcu=atmega16 angibst, dann taucht da (unter anderem) ein
_AVR__ATMEGA16_  mit auf.  An Hand dieser Makros wiederum wird
in allerlei Header-Dateien (so auch in <avr/io.h>) entschieden, was
konkret zu tun ist.

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.