ein bit
-
Hi.
Wie schreibe ich ein einzelnes Bit auf die Serielle Schnittstelle (auf TxD)?
danke.
MFG fsd.
-
du kannst dir unter C++ leicht mit std::bitset ein paar Bits setzen und löschen und kannst diese dann an /dev/ttyS0 schicken
Serielle Schnittstelle ansprechen
http://www.sgi.com/tech/stl/bitset.html
-
Nunja, das ist nicht ganz das, was ich suche.
Wenn ich das auf das device /dev/ttySx schreibe, schreibt der mir ja sowas in der Art:
000000111
Wobei die letzten beiden bit Parity und Stopbit sind. Aber gerade die kann ich nicht brauchen. Ich hab mir nämlich eine Schaltung mit einem Schieberegister gebaut, das die Parity und Stopbits misinterpretiert.
Unter DOS kann ich ganz einfach (in Pascal) do ein Bit auf den Seriellen Port schreiben:Port [BA+3] := 64
Dann wird da aber auch nur *ein* bit geschrieben (d.h. also das TxD Kabel auf -12V gesetzt). Dann kann ich hiermit das Bit wieder auf 0 setzen (d.h. die TxD line wieder auf +12V setzen):
Port [BA+3] := 0
Wie ist das unter Linux und C/C++ möglich? Ist es überhaupt möglich, oder muss ich mir wirklich noch die Arbeit antun und extra einen Treiber für das Teil schreiben?
danke.
MFG fsd.
-
Schau dir mal folgende Informationen an.
man 1 stty
man 3 termios
man 8 setserialSerial Howto http://www.tldp.org/HOWTO/Serial-HOWTO.html
Serial Programming Howto http://www.tldp.org/HOWTO/Serial-Programming-HOWTO/index.html
Figures - Serial Programming Guide for POSIX Compliant Operating Systems http://rebel.net/~mad/serialtutor/figures.html
Der Serielle Port wird i.d.R. auf 8-N-1 (8 Datenbits, kein Paritätsbit, 1 Stopbit) gesetzt. Die Datenbits kannst du einstellen von 5..8 Bits; das Paritätsbit kannst du sowohl abschalten, als auch auf Even bzw. Odd stellen und das Stopbit kann als ein oder zwei Bit gesendet werden. Eine Möglichkeit, das Stopbit komplett auf 0 zu setzen bzw. abzuschalten habe ich nicht gefunden.
Vielleicht findest du ja weitere Informationen in den Unterlagen.
-
Serial Programming Guide for POSIX Compliant Operating Systems
http://rebel.net/~mad/serialtutor/Configuring the Serial Port
http://rebel.net/~mad/serialtutor/config.html