Einstellung F_CPU AVRStudio

Gast #1201906
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
Persönliche Seite #1202105
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-Tutorial:_Equipment#Erg.C3.A4nzende_Hinweise_zur_Taktversorgung_.28kann_.C3.BCbersprungen_werden.29

> 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.
Gast #1202113
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:
1
#define CALC_UBRR_VALUE(baud) ((F_CPU / 8 / (baud)) - 1)

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.