Hallo, ich bin gerade dabei mich mit der util/delay.h einzuarbeiten. Jetzt habe ich schon eine ganze Menge über das Einstellen der Taktfrequenz gelesen aber etwas ist mir immer noch nicht ganz klar. Ich hoffe hier kann mir jemand den Sachverhalt mal eindeutig erklären. Wo bitte definiere ich den nun die Taktfrequenz für die Benutzung der Funktion: void delay_ms? Die Fusebits habe ich gesetzt auf die von mir gewünschte Taktfrequenz. Im AVR Studio, unter Project --> Configuration Options ist Optimization -Os eingestellt. Muss ich auch hier die Taktfrequenz in Hz eintragen? Ist die Definition im .C File mit #define F_CPU nur eine Konstant mit der im Programm gerechnet wird und hat keine Auswirkung auf die Tasächliche Hardware Taktrate? Den wenn diese #define nicht vorhanden ist, bekomme ich lediglich eine Wahrnung.Das Programm wird übersetzt und abgearbeitet. Desweiteren habe ich in einem Beitrag gelesen:"Du solltest das definieren von F_CPU in der Reihenfolge der 3 Möglichkeiten sehen: Options Dialog ist am besten (wenn die IDE das Makefile erzeugt), Makefile ist zweite Wahl, direktes Einfügen will man vermeiden." Heißt das das ich die Taktfrequenz im Makefile definieren kann und dadurch die Definition im .c File überflüssig macht? Wie würde so etwas den aussehen? Bin noch Anfänger und möchte mir nicht gleich irgend etwas abschießen! Was bitte ist den nun richtig und was falsch? Gruss, Andreas
> Wo bitte definiere ich den nun die Taktfrequenz für die Benutzung der > Funktion: void delay_ms? Irgendwo vorm einbinden des zugehörigen Headers. Vorzugsweise an ∗einer∗ zentralen Stelle. > Ist die Definition im .C File mit #define F_CPU nur eine Konstant mit > der im Programm gerechnet wird und hat keine Auswirkung auf die > Tasächliche Hardware Taktrate? Ja (Ergänzung für Pedanten: Nein, im Programm wird i.d.R. nicht mehr mit der Konstante^W^Wdem define F_CPU gerechnet, das haben Präprozessor (F_CPU substituieren) und Compiler (rumrechnen/optimieren) schon erledigt). > Heißt das das ich die Taktfrequenz im Makefile definieren kann und > dadurch die Definition im .c File überflüssig macht? Ja. Wäre auch meine bevorzugte Wahl. Angaben in der GUI stehen in meinen Augen an allerletzter Stelle. andererleuteMMV. > Wie würde so etwas den aussehen? Bin noch Anfänger und möchte mir nicht > gleich irgend etwas abschießen!
1 | # richtig langsamer externer Beispieltakt |
2 | F_CPU = 123 |
3 | |
4 | # hier bauen wir die Parameter für den gcc zusammen |
5 | CFLAGS += -DF_CPU=$(F_CPU)UL |
6 | |
7 | # irgendwo hier wird dann irgendwann mal der gcc gerufen - mit CFLAGS versteht sich |
8 | .. |
HTH g457 selbst ein Pedant
g457 schrieb: > # irgendwo hier wird dann irgendwann mal der gcc gerufen - mit CFLAGS versteht sich > .. Kannst Du mir das bitte noch mal vollständig auskommentieren bzw. aufzeigen? Stehe glaub ich gerade auf dem Schlauch. Vielen Dank auf jeden Fall für deine Hilfe.
Da [1] gibts ein seehr ausführliches und gut annotiertes Beispielmakefile. Falls Du noch Infos zum Makefile allgemein suchst: In der Wikipedia gibts einen hübschen Artikel dazu [2], noch etwas länger in der englischen Version [3]. Und eine richtig ausführliche Doku gibbet in der Referenz [4] vom make :-) HF [1] http://www.mikrocontroller.net/articles/Beispiel_Makefile [2] http://de.wikipedia.org/wiki/Makefile [3] http://en.wikipedia.org/wiki/Makefile [4] http://www.gnu.org/software/make/manual/make.html
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.