PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Baudrate bei Software-UART während der Laufzeit ändern?



TomEdl
08.04.2009, 13:40
Hallo!

Ich habe folgendes Problem:
Ich möchte während der Laufzeit die Baudrate der Software-UART ändern können. Versucht habe ich es zuerst hiermit:


Open "COMC.7:2400,8,N,1" For Input As #1
Open "COMC.6:2400,8,N,1" For Output As #2

Dim A as Byte

Do

Print #2 , "Druecken Sie die 1 zum Aendern der Baudrate"
Inputbin #1 , A
If A = 49 then
Close #1
Close #2
Open "COMC.7:9600,8,N,1" For Input As #1
Open "COMC.6:9600,8,N,1" For Output As #2
Print #2 , "Baudrate ist nun 9600Baud"
End If

Loop

End


Allerdings tut sich gar nichts. Er schreibt zwar "Baudrate ist nun 9600Baud" raus, aber die Baudrate ändert sich nicht.

Weiß da jemand eine Möglichkeit?

Danke
Thomas
:)

Suggarman
08.04.2009, 14:31
Open "COMC.7:9600,8,N,1" For Input As #1


Probiere anstelle obiger Zeile mal:

baud #1, 9600


mfg

Stefan

TomEdl
08.04.2009, 16:01
Open "COMC.7:9600,8,N,1" For Input As #1


Probiere anstelle obiger Zeile mal:

baud #1, 9600

Hab ich soeben versucht, jedoch erfolgt danach überhaupt keine Verbindung zum Terminal mehr. Anscheinend schaltet sich dadurch die Software-UART ab.

Grüße
Thomas

PicNick
08.04.2009, 17:19
In diesem Falle kann dir das ev. helfen

https://www.roboternetz.de/wissen/index.php/Bascom_Inside-Code#SERIN

PICture
09.04.2009, 01:35
Hallo!

@ TomEdl

Wenn sich der Terminal nicht selber auf emfangene Baudrate einstellen könnte, muss es auch für ihn per Software gemacht werden. Der Datentransfer ist eben nur möglich, wenn sowohl der Sender als auch der Empfänger davor auf die gleiche Baudrate eingestellt sind.

MfG

TomEdl
09.04.2009, 13:49
Hallo!

Hallo!

@ TomEdl

Wenn sich der Terminal nicht selber auf emfangene Baudrate einstellen könnte, muss es auch für ihn per Software gemacht werden. Der Datentransfer ist eben nur möglich, wenn sowohl der Sender als auch der Empfänger davor auf die gleiche Baudrate eingestellt sind.

MfG
Da hast du mich wohl falsch verstanden. Ich habe versucht die Baudrate am Controller zu ändern und erwartete nach erfolgter Umstellung auf eine andere Baudrate Zeichenmist am Terminal, worauf ich festellen kann, dass jetzt auf einer anderen Baudrate gesendet wird. Danach wollte ich manuell am Terminal die Baudrate umstellen.

Grüße
Thomas

PicNick
09.04.2009, 13:56
WIe oben gesagt : Du kannst "SERIN"/"SEROUT" verwenden (type "HELP" for help)

TomEdl
09.04.2009, 13:59
WIe oben gesagt : Du kannst "SERIN"/"SEROUT" verwenden (type "HELP" for help)
Ich werds mal versuchen, und melde mich dann.

Aber erstmal geh ich Mittagessen. Mahlzeit. ;)

Grüße
Thomas
:)

PICture
09.04.2009, 14:17
Hallo!

@ TomEdl

Wenn der Terminal nach Umstellung der Baudrate keine Daten richtig empfangen kann, dann zumindest eine davon entspricht nicht der eingestellter. Vielleicht hat der µC einen Quartz, der sich für diese Baudrate nicht eignet.

MfG

TomEdl
09.04.2009, 14:28
Hallo!

@ TomEdl

Wenn der Terminal nach Umstellung der Baudrate keine Daten richtig empfangen kann, dann zumindest eine davon entspricht nicht der eingestellter. Vielleicht hat der µC einen Quartz, der sich für diese Baudrate nicht eignet.

MfG
Das ist ja das Problem. Ich empfange die Zeichen richtig! Daraus schließe ich, dass der µC die Baudrate nicht geändert hat.

Gruß
Thomas