AVR Studio Reihenfolge beim Compilieren ?

Gast #2901814
Lesenswert?
• ▲
▼
Ich habe nun mal endlich angefangen mit AVR Studio zu arbeiten (hier 
V5.1)
Bitte entschuldigt diese blöde Frage, aber ich komme einfach nicht 
weiter:
Mein Projekt enthält div. einzubindenden .c sowie .h, die wieder andere 
.h einbinden. Das Haptprogramm ist Main.c

Nun ist es so, dass
in Main.c die allerersten Zeilen sind:
#ifndef F_CPU
#define F_CPU 16000000UL
#endif

danach folgt #include <util/delay.h>

AVR Studio meckert trotzdem beim Compilieren dass F_CPU nicht defined 
wäre, da trotzdem als allererstes anscheinend TWI_Masters.h compiliert 
wird (wo auch noch mal delay.h includiert wird, obwohl das erst viel 
später dran käme.

Anscheinend, weiß AVR Studio nicht, dass er bitteschön mit Main.c 
beginnen soll. Kann ich das irgendwo festlegen ?

Danke - und bitte entschuldigt die vermutlich ziemlich dumme Frage.

Oli
#2901905
Lesenswert?
• ▲
▼
Oli schrieb:

> AVR Studio meckert trotzdem beim Compilieren dass F_CPU nicht defined
> wäre, da trotzdem als allererstes anscheinend TWI_Masters.h compiliert
> wird (wo auch noch mal delay.h includiert wird, obwohl das erst viel
> später dran käme.

Ein *.h File wird überhaupt nicht compiliert.
Wenn doch, dann hast du es an falscher Stelle in den Projektbaum vom 
AVR-Studio eingebunden.

In die Project-Sektion "Source Files" kommen nur die C-Files rein (bzw. 
die Files, die zu kompilieren sind)

> Anscheinend, weiß AVR Studio nicht, dass er bitteschön mit Main.c
> beginnen soll.

Braucht es auch nicht wissen.
Da C-Files unabhängig voneinander compiliert werden, spielt es keine 
Rolle, in welcher Reihenfolge diese compiliert werden.


Edit:
Sehe grade: du benutzt die 5-er Version vom AVR-Studio.
Von der weiß ich nicht, wie der Projektbaum organisiert ist.
Im 4-er gab es noch unterschiedliche 'Kategorien' für C und Header 
Files. Im 6-er gibts das auch nicht mehr. Da wirft man einfach alles ins 
Projekt rein, und AVR-Studio weiß selber, dass H-Files nicht zu 
komplilieren sind.
Gast #2902279
Lesenswert?
• ▲
▼
Oli schrieb:
[...]
> Nun ist es so, dass
> in Main.c die allerersten Zeilen sind:
> #ifndef F_CPU
> #define F_CPU 16000000UL
> #endif
[...]

Das ist sowieso falsch.

Es sagt nämlich: wenn F_CPU noch nicht definiert ist definiere es als 
16Mio.

Wenn Dein µC mit 16MHz läuft möchtest Du aber F_CPU ohne wenn und aber 
als 16Mio (=16MHz) definieren.

Man kann nicht alles einfach aus einem Header abschreiben... ;-)

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.