Hallo,
ich hab schon im Forum gesucht, aber keine passende Antwort gefunden.
Ich muss im laufenden Programm die Baudrate des COM-Port (ATMega8)
umschalten. Die Baudrate wird auch umgeschaltet, allerdings werden an
den auszugebenden Text noch zwei Zeichen angehängt. Wo kann der Fehler
liegen?
Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 ,
Databits = 8 , Clockpol = 0
print "Hallo"
In der Hauptschleife:
do
toggle baudrate
select case baudrate
case 0: baud = 4800
case 1: baud = 9600
end select
print "Hallo"
wait 1
loop
Das Programm printet jede sekunde "Hallo" abwechselnd mit 4800 oder 9600
Baud. Allerdings werden an das "Hallo" noch 2 Zeichen angehängt!?
(ASCII 43 und ASCII 85). Das "Hallo" vor der Hauptschleife wird richtig
ausgegeben.
Vielen Dank im Voraus, dani
Keine Ahnung was passiert, wenn man der UART die Baudrate umdreht, während gerade 1 Byte rausgetaktet wird.
@dani: Schaffst Du es denn im Sekundentakt und synchron zum Datenstrom die Baudrate in deinem Terminalprogramm zu switchen? ;)
@ Magnus: Ich lasse das Terminalprogram auf 9600 Baud, aber dann sollte jedes 2. "Hallo" lesbar sein. Ich hab aber den Fehler gefunden: "Before doing a re-initialization with changed baud rate or frame format, be sure that there are no ongoing transmissions during the period the registers are changed." ... jaja, ich sollte das Datenblatt lesen befor ich hier poste. Dennoch vielen Dank
dani schrieb: > Das Programm printet jede sekunde "Hallo" abwechselnd mit 4800 oder 9600 > Baud. Allerdings werden an das "Hallo" noch 2 Zeichen angehängt!? Zeig doch mal, wie baudrate dimensioniert ist. Die 2 Zeichen sind CR/LF, die können so: print "Hallo"; unterdrückt werden. Karl Heinz schrieb: > Keine Ahnung was passiert, wenn man der UART die Baudrate umdreht, > während gerade 1 Byte rausgetaktet wird. Ungepuffertes print arbeitet blockierend, da wird nix während des Sendens umgedreht. Und selbst wenn es gepuffert wäre, in 1 Sekunde sind selbst bei 4800 Baud alle 7 Zeichen draußen. dani schrieb: > "Before doing a re-initialization with changed baud rate or frame > format, be sure that there are no ongoing transmissions during the > period the registers are changed." Du hast keine laufende Übertragung.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.