Seite 1 von 2
Serieller COM-Port mit 76800 Baud
Verfasst: 25.09.2008 18:36
von Langstein
Hallo zusammen,
die standard Library von Purebasic erlaubt keine 76800 Baud. Wie kann ich die schnittstelle mit dieser Baud aufmachen? Kann man an einen Entwickler eine Mail schreiben um das nachzupflegen?

Wäre echt super, wenn jemand antwortet.
Verfasst: 25.09.2008 18:41
von ts-soft
Verfasst: 26.09.2008 09:46
von Rings
Ich programmiere nun schon seit über 20 Jahren mit
seriellen schnittstellen.
Kann man die baudrate überhaupt unter windows nutzen ?
Kommt es da nicht auf die hardware an ?
Klappt die baudrate im Windows-Terminal PRG ?
last not least, wofür brauch man eine solche
baudrate (76800 ), hab ich noch nie gehört.
Verfasst: 26.09.2008 10:37
von Helle
Also die (halbwegs moderne) PC-Hardware schafft dies ohne Probleme. In den Datenblättern der Super-IO-Chips wird ein Bereich von 50 bis 1.497.600 Baud angegeben. Über direkte Port-Zugriffe relativ leicht selbst zu programmieren. Das Problem dürfte wohl eventuelle externe Hardware sein.
Gruß
Helle
P.S.: Die Baud-Werte sind natürlich abhängig vom eingesetzen Super-IO-Chip!
Verfasst: 26.09.2008 16:43
von Langstein
Ja, die Baud gibt es in der Gebäudeautomation bei BACnet. Andere Programme laufen ausgezeichnet.
Nochmal die Bitte nach einem Entwicklerkontakt.
Verfasst: 26.09.2008 17:32
von Kiffi
Langstein hat geschrieben:Nochmal die Bitte nach einem Entwicklerkontakt.
den hat Dir Thomas (ts-soft) mit dem Link oben ja schon genannt. Alles, was
dort gepostet wird, liest der Entwickler auch höchstpersönlich. (Nur ob und
wann es umgesetzt wird, ist eine andere Sache

)
Grüße ... Kiffi
Verfasst: 26.09.2008 19:39
von Helle
@Langstein: Das Problem dürfte der Wert von 76.800 Baud sein, den ich nur bei aktuellen Winbond-Chips fand, nicht aber bei anderen Herstellern. Hat zwar erstmal nichts zu sagen, meine Datenblatt-Sammlung ist natürlich unvollständig, aber 76.800 Baud würde ich schon ausserhalb einer "Normreihe" bezeichnen. Damit sinken die Chancen einer generellen Unterstützung (na ja, eigentlich Chance gleich Null). Wenn du es nur privat (soll heissen, für deinen Hobby-PC) nutzen willst, checke doch erstmal, ob dein PC (der Super-I/O-Chip) diesen Wert überhaupt unterstützt/bereitstellt. Wenn ja, siehe die direkten Port-Zugriffe.
Gruß
Helle
Verfasst: 28.09.2008 15:57
von smiley46
Könnte durchaus über die API funktionieren.
Weil:
2.995.200 / 2 = 1.497.600
2.995.200 / 26 = 115.200
2.995.200 / 39 = 76.800
2.995.200 / 156 = 19.200
Anderes Beispiel: Der USB Chip FT232
Baud = 6.000.000 / 2 / Teiler
Teiler Baudrate Abweichung
38 78947 (+2,7%)
39 76923 (+0,2%)
40 75000 (-2,4%)
Die Abweichung ist bei einem Teiler von 39 sehr gering. Alle drei sollten jedoch funktionieren, da die Abweichung weniger als 3% beträgt.
Verfasst: 28.09.2008 17:10
von Langstein
Hallo zusammen,
danke für die Infos. Hab den Wunsch auf das Entwicklerboard gestellt. Mal sehen, ob es was wird.
Da ich nicht der ausgebuffte Entwickler bin, wäer ich dankbar, wenn mir einer einen Tip geben könnte, wie ich auf die Windows API zugrefen kann. Tutorial mit ersten Schritten wäre super.
Danke für Eure Tipps.
Verfasst: 28.09.2008 17:22
von ts-soft
So ganz verstehe ich das sowieso nicht, die Lib funktioniert doch mit allen Baudraten, die die Schnittstelle zur Verfügung stellt.
Code: Alles auswählen
Port$ = "COM1"
If OpenSerialPort(0, Port$, 76800, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 1024, 1024)
MessageRequester("Information", "SerialPort opened with success")
Else
MessageRequester("Error", "Can't open the serial port: "+Port$)
EndIf
115200 funktioniert bei mir, aber 76800 kann meine Schnittstelle nicht, würde aber ansonsten gehen (gehe ich mal von aus)