Hallo Zusammen,
als Mikrocontroller- Neuling habe ich mich an UART ran gewagt. Seit
Tagen versuch ich es schon, aber irgend etwas läuft schief. Alle
Beispiele die ich bis her gefunden habe funktionieren nicht richtig. Ich
bekomme im Terminal immer irgend welche Sonderzeichen, obwohl dich die
richtige Baudrate eingestellt habe.
Ich habe einen atmega644 ohne Quarz an meinem Pollin Board hängen.
Das ist mein Code:
>Könnte mir jemand einen Tipp geben ???
Sieht nach falscher Baudrate aus.
F_CPU im makefile anzugeben ist nur die halbe Miete.
Die Fuses müssen auch dazu passen.
>An denen habe ich noch nichts gemacht. Die stehen noch im>Auslieferungszustand.>>Wie müsste ich den F_CPU einstellen, ich dachte 1000000 wäre richtig?
Ok, ist es dann auch. Stellst du bei Putty auch die richtige
Baudrate, Parity usw ein? Interessant wäre das komplette Programm.
trotzdem kann die Frequenz des Oszillators so weit abweichen, das im
Terminal nur Mist ankommt.
Wenn du was zum messen der Frequenz hast, da setze mal die CKOUT-Fuse
und miss die Taktfrequenz an PB1.
Sascha
Wenn ich das richtig sehe, dann benutzt du Studio 5.
In deiner main.c teilst du dem Compiler den Takt deiner CPU mit.
Und zwar ganz oben vor den includes:
#define F_CPU 1000000UL
Und daß es ein Makefile gibt vergisst du einfach.
Sascha Weber schrieb:> trotzdem kann die Frequenz des Oszillators so weit abweichen, das im> Terminal nur Mist ankommt.
4800 bei 1 MHz geht wunderbar. So groß ist die Abweichung nicht.
mfg.
>In deiner main.c teilst du dem Compiler den Takt deiner CPU mit.>Und zwar ganz oben vor den includes:>>#define F_CPU 1000000UL>>Und daß es ein Makefile gibt vergisst du einfach.
Schwachsinn. Das makefile ist der richtige Platz für F_CPU.
Dann wissen alle Module mit welcher F_CPU sie laufen sollen.
Sascha Weber schrieb:> messen der Frequenz
Zum Messen der Frequenz habe ich leider noch nichts :-(
Thomas Eckmann schrieb:> Wenn ich das richtig sehe, dann benutzt du Studio 5.
Nein, ich mach das unter Windows in der CMD, mit "make all" und lade es
dann mit Burn-O-Mat hoch.
Hier die Ausgabe beim Kompilieren:
1
D:\avr\uart>make all
2
3
-------- begin --------
4
avr-gcc (WinAVR 20100110) 4.3.3
5
Copyright (C) 2008 Free Software Foundation, Inc.
6
This is free software; see the source for copying conditions. There is NO
7
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
confuse schrieb:> nimm mal den fuses den haken bei ckdiv8 weg...confuse schrieb:> nimm mal den fuses den haken bei ckdiv8 weg...
ach ja...
oder geh in putty auf 600baud
600 Baud brachte auch kein lesbares Ergebnis :-(
Habe die Fuses eingelesen, den Harken bei ckdiv8 weg gemacht und zurück
gespielt. Gleiches Ergebnis, Hyroklüfen.
Also wieder eingelesen und ckdiv8 wieder gesetzt, so wie es vorher war.
Und siehe da es steht "Hallo" auf der Konsole^^. Obwohl die alte
Einstellung wieder gesetzt ist.
Also habe ich das Spielchen wiederholt. Noch einmal ckdiv8 weg gemacht
hochgespielt, eingelesen, wieder gesetzt und hochgespielt. Und nun sind
wieder Hyroklüfen auf der Konsole.
Also habe ich mir MTTTY http://sites.google.com/site/hb9cuf/ runter
geladen. Und siehe da, es geht !!!!
Es hat an Putty gelegen ! Die Parameter sind in Putty und MTTTY gleich.
Vielen Dank für eure Hilfe !!!!!!
Eine eigene Frage?
Dieser Thread ist über 15 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.