Autor Beitrag
MiThoTyN
Hält's aus hier
Beiträge: 5

Win XP, Linux
Delphi 7
BeitragVerfasst: Do 24.06.04 15:24 
Hi Forum !!

Ich hab da ein Problem.
Ich will ein Programm schreiben, dass auf der seriellen Schnittstelle über DTR/RTS eine unendliche Folge
von "10101010" ausgibt. Das ganze muss mit exakt 1200 Baud passieren.
Quasi ein Taktgenerator mit 1,2 kHz.

Die Befehle der Seriellen Schnittstelle weiß ich alle.

Meine Frage ist nun, wie ich das so programmieren kann, dass es eben exakt 1200 Baud sind, unabhängig von der Rechnergeschwindigkeit oder sonstigen Einflüssen.

Hat sowas schonmal jemand gemacht ?

Gruß Joachim
EUOCheffe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 124



BeitragVerfasst: Do 24.06.04 18:06 
Im Prinzip sorgt ja der COM Baustein (UART) dafür, dass die Daten mit der korrekten Geschwindigkeit übertragen werden. D.h. du musst jetzt nicht nen Timer auf irgendwas einstellen, der dann Zeichen für Zeichen zur richtigen Zeit runterschickt. Du musst nur dafür sorgen, dass der Puffer immer schön voll bleibt, wenn du etwas überträgst und der Datenstrom nicht abbrechen darf. D.h. wenn der Puffer z.B. 1024 Bytes gross ist, dann reicht es prima alle paar Sekunden den Puffer erneut zu füllen.
MiThoTyN Threadstarter
Hält's aus hier
Beiträge: 5

Win XP, Linux
Delphi 7
BeitragVerfasst: Fr 25.06.04 10:46 
Hi Cheffe ...

Ne .. falsch verstanden. Die Baudrate, die man für die COM normalerweise festlegt ist ja nur für die RXD und TXD Leitungen. Auf denen eigentlich die seriellen Daten hin und herwandern.

RTS/DTR sind die Handshake/Steuerleitungen. Die ändern ihren Status normalerweise ohne Takt.

Ich benötige jetzt aber an einer dieser Leitungen nen Takt von 1200 Baud. Unabhängig von der eigentlichen Baudrate der Schnittstelle.

Ich muss mich also in einer Endlosschleife (Threat) selbst drum kümmern, die RTS/DTR Leitung 1200 mal in einer Sekunde von 0 nach 1 wechseln zu lassen. Nur wie bekomme ich das hin. Das es eben genau 1200 mal in der Sekunde ist ....

Jetzt klarer ?

Gruß Joachim