Baud-Rate umschalten

Gast #343391
Lesenswert?

Tach zusammen!

Ich arbeite mit einem ATmega88 und habe ein Problem beim Umschalten der
Baudrate. Ich möchte Daten mit einer Baudrate von 62 empfangen, in ein
Feld schreiben und mit einer Baudrate von 2400 an einen PC
weiterleiten.
Die Daten stehen auch richtig in dem Feld drin, nur zeigt mir ein
Terminalprogramm auf dem PC immer mehr Daten als ich gesendet habe.
Muss ich beim Umschalten der Baudrate im Programm irgendwas beachten?
Ich setze im Moment einfach vor meiner Sende-Routine die Baudrate hoch
und danach wieder runter. Kann man das so einfach machen?

Gruß, Coach.
Gast #343392
Lesenswert?

Erstmal:

Warum empfängst du mit 62Bit/s?Zwingt dir das eine ander Hardware
auf?Is nich nur extrem langsam sonder auch unüblich.

2. Was für einen Quarz hast du dran,wie sieht dein Baudraten-Teiler
aus?

3. Wartest du,bis fertig empfangen/gesendet wurde,bevor du
umschaltest?

und zu guterletzt: Is alles richtig verschaltet?

Code&Schaltplan wär z.B prima um die Raterei zu beenden ;)
Gast #343393
Lesenswert?

Ich muss so langsam übertragen weil mein Übertragungsmedium ziemlich
träge ist. Ich würde gerne noch langsamer, aber 62 ist das niedrigste
was bei 4 MHz geht (UBRR = 4031). Und langsamer kann ich den Controller
nicht takten, weil sonst nicht mehr alle Interrupts durchkommen.
Beim Empfang schreibe ich die Daten in ein Feld bis ein LineFeed
erkannt wird. Dann schalte ich um und versende das Feld in einer
Schleife. Danach schalte ich wieder um.
Schaltung müsste passen. Wenn ich das Medium überbrücke und direkt mit
einer Baudrate sende funktioniert alles. Es liegt also am Umschalten.
Kann es sein, dass ich dabei irgendeine Reihenfolge einhalten muss?
Vielleicht erst den UART disablen und danach wieder enablen oder so?

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