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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren