Hallo,
mit 1MHz 9600 bps zu erzeugen, führt zu einem Fehler(Abweichung) von -7%, was schon zuviel sein kann,
probier es mal mit 4800bps, dann ist die Abweichung nur 0,2%.
Hallo!
Ich habe TxD von einem Mega8 über einen MAX232 an der seriellen Schnittstelle angeschlossen. Als Taktquelle verwende ich den internen Oszillator.
Am PC empfange ich zwar immer Daten, die sind aber nur Schrott. Gerade eben habe ich aber ein paar Minuten lang den Text "hello mega8 xxx" lesen können, was ich erfreulicherweise haben will. Kurz später kam dann wieder nur Schrott.
Hier ist das Testprogramm (aus den Samples, ein bisschen geändert):
Am PC ist zum Empfang 9600,8,N,1 eingestellt.Code:$regfile = "m8def.dat" $crystal = 1000000 $baud = 9600 Dim X As Byte , S As String * 10 Osccal = &HA0 Do Osccal = Osccal + 1 Print "hello mega8 " ; Osccal Waitms 1000 Loop End
Habt ihr ne Idee, woran das liegt?
Danke!
Hallo,
mit 1MHz 9600 bps zu erzeugen, führt zu einem Fehler(Abweichung) von -7%, was schon zuviel sein kann,
probier es mal mit 4800bps, dann ist die Abweichung nur 0,2%.
Hallo.
wenns unbedingt 9600 sein sollen kannste den Atmel auch auf 4MHZ anheben
da liegst Du dann auch bei fast 0%.
Noch besser ist ein Quarz wie 3.6864 MHZ oder 1.8432 MHZ damit triffst Du die Baudrate exakt. Auf www.rowalt.de gibts auch ein kleines Programm was die die Fehlerrate ausrechnet.
MfG
Jetzt funktionierts!
Ich hab die Frequenz auf 8MHz gesetzt und folgendes Programm verwendet:
Anscheinend war im vorigen Programm irgend ein Wurm drin. Er hat genau 11 mal das richtige ausgegeben und dann Schrott. Jetzt schreibt er schön das, was er sollCode:$regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 Do Print "hello mega8 " Waitms 250 Loop End
Und vor allem ist die Abweichung zur Baudrate damit fast 0, das hilft auch schon einen Schritt weiter.
Am Rest hat sich vom Prinzip her nix geändert.
Lesezeichen