mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Einstellung F_CPU AVRStudio


Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe ein Programm welches die serielle Schnittstelle nutzt 
geschrieben.
Wenn ich unter Project Options eine External Makefile auswähle, in 
welchem F_CPU auf 7372800 gestellt wird funktioniert die Serielle.
Nutze ich allerdings kein external Makefile sonderen definierte unter 
Project Options "Frequency" als 7372800 funktionierte die Serielle nicht 
(es kommt nur Müll an).

Hat einer eine Idee warum?

Gruß Jens

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann wirf doch mal einen Blick in das von AVRStudio generierte Makefile.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im vom AVRstudio generierten Makefile steht -DF_CPU=7372800UL.
Muss dieser Wert F_CPU erst zugewiesen werden?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein. Das -DF_CPU=7372800UL

entspricht einem
#define F_CPU 7372800UL
im C-Programm.


Wie hast du denn in deinem externen Makefile die Frequenz eingestellt? 
Und wie wird F_CPU im Programm verwendet?

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens wrote:
> Im vom AVRstudio generierten Makefile steht -DF_CPU=7372800UL.
> Muss dieser Wert F_CPU erst zugewiesen werden?

Die Kommandozeilenoption -DF_CPU=7372800UL für den C-Präprozessor 
definiert (-D...=...) ein Makro (F_CPU) mit einem Makrowert (7372800UL)

Dadurch kann im Quellcode mit dem Makro F_CPU gerechnet werden. Mit der 
realen Situation in der Schaltung hat das noch nichts zu tun. Erst wenn 
der µC eine 7372800 Hz Taktquelle angeschlossen hat und er diese auch 
benutzt, was man mit den AVR Fuses einstellt, passt es.
http://www.mikrocontroller.net/articles/AVR-Tutori...

> ich habe ein Programm welches die serielle Schnittstelle nutzt geschrieben.
> Wenn ich unter Project Options eine External Makefile auswähle, in
> welchem F_CPU auf 7372800 gestellt wird funktioniert die Serielle.
> Nutze ich allerdings kein external Makefile sonderen definierte unter
> Project Options "Frequency" als 7372800 funktionierte die Serielle nicht
> (es kommt nur Müll an).

Sourcecode?

Es gab mal im AVR-GCC-Tutorial Beispielcode und Makros zum Berechnen 
der Werte für das Baudratenregister, die nicht mit unsigned Werten (UL) 
für F_CPU konnten. AVR-Studio übergibt F_CPU als UL Wert... Vielleicht 
hast du eine solche alte Version erwischt.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das externe Makefile wurde mit dem Programm MFile erstellt.
also: F_CPU=7372800

F_CPU wird zum einen von der delay.h und für die einstellung der 
Baudrate verwendet:
#define CALC_UBRR_VALUE(baud) ((F_CPU / 8 / (baud)) - 1)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens wrote:
> Das externe Makefile wurde mit dem Programm MFile erstellt.
> also: F_CPU=7372800

OK.
Hast du schon mal ins Makefile reingeschaut, was MFile aus dieser Angabe 
gemacht hat?

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Makefile steht:
F_CPU =  7372800

CDEFS = -DF_CPU=$(F_CPU)UL

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Such mal in allen Files nach F_CPU, vielleicht ist da irgendwo noch 
etwas anderes definiert.

Wie sind die Optimierungen eingestellt ?

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
F_CPU ist sonst in keinem anderen file definiert.

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.