USART gibt komische Zeichen aus

Gast #1131055
Lesenswert?

Hallo,

ich bin noch ziehmlicher uC Anfänger und versuche mich gerade am Nachbau 
des SD Interface nach Ulrich Radig.

Ich hatte es schon so weit, dass ich die gewünschten Meldungen über das 
USART ausgegeben hatte. Dann habe ich einiges hin und her probiert. 
Jetzt bekomme ich nur noch eine Menge Sonderzeichen über das USART.

Offensichtlich habe ich irgendwo etwas bzgl. Taktfrequenz / Baudrate 
verstellt.

Aber ich finde es nicht! Folgendes ist der Stand der Dinge:

In der "usart.h" steht:

#ifndef F_CPU
  #define F_CPU 1000000UL

In AVR Studio habe ich im Programmierfenster im Reiter "Fuses" 
ausgewählt:
Int. RC Osc. 1 MHz; Start-up time: 6 CK + 64 ms, default value

Im Reiter "Advanced" steht die Frequenz auf 1MHz

In der Main.c initialisiere ich das USART mit:
usart_init(9600);

Mein Terminal steht auch auf 9600 ber zeigt nur Mist an.

Habe ich da noch irgendwo etwas übersehen?

Gruß
Ralf
Gast #1131062
Lesenswert?

Unabhängig von möglichen anderen Fehlern, zum ungefähr zweihundertsten 
mal in diesem Forum:

>Int. RC Osc. 1 MHz;

Das funktioniert nicht zuverlässig! Der interne RC-Oszillator ist zu 
ungenau. Wenn du den UART verwenden willst, kannst du das nur mit Quarz 
machen. Ändere das mal, erst dann kannst du weitere Fehler suchen.
#1131093
Lesenswert?

> #ifndef F_CPU
>  #define F_CPU 1000000UL


möglicherwese ist die Frequenz ja schon woanders mit 4 000 000 definiert 
? dann überliest dre comppiler diese definition einfach



und der RC ist schon genau genug. Allerdings bei ungefär Raumtemperatur 
und mit halbwegs exacten Grundbaudraten. Schaden kann ein Quarz 
natürlich nie...

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