Master-Jimmy hat geschrieben:@derguteweka: Du weisst nicht zufällig mit welchem String/Zeichen man dem COM1 beibringt "break" zu senden?-Oder geht das ganz anders?
Das geht ganz anders, z.b. aehnlich wie die ollen Makros fuer die Handshakeleitungen. Ist jetzt nicht getestet - vielleicht so in der Art:
- Code: Alles auswählen
#define IR_BREAK \
{ \
outportb(COMn+3,inportb(COMn+3) | 0x40);\
}
#define IR_NO_BREAK \
{ \
outportb(COMn+3,inportb(COMn+3) & ~0x40);\
}
Master-Jimmy hat geschrieben:Nichts senden(break) --> +12V auf TxD
NUL(ASCII: 0x00) senden --> -12V auf TxD
Richtig?
Nein, Break ist was anderes als mal Bytes mit 0x00 senden. Wenn du 0x00 sendest, kommt ein Startbit, 8 Nullbits und 1-2 Stopbits. Danach ist TxD wieder auf -12V; wie schnell das alles abgeht, wird durch den Wert im Divider-Register bestimmt.
Wenn du Break sendest, dann dauert das ewig - oder solange, bis du das entsprechende Bit im Register 3 wieder loeschst. Es werden auch keine Start- oder Stopbits gesendet.
Pegel dabei an der Sub-D Buchse: Kein Break: -12V; Break: +12V
Master-Jimmy hat geschrieben:P.S.: Was machst du dich lustig über meinen Versuch mit Assembler?
Oder gehörst du auch zu denen die sich täglich die Köpfe einschlagen, weill sie alle glauben "ihre" Sprache sei die beste...???
OOps, da kam was falsch rueber. Hab' mich nicht lustig ueber Assembler gemacht. Das ist immerhin die 2. Programmiersprache, die ich gelernt hab' (Nach BASIC ) - ohne Assembler war nicht viel los auf 'nem ZX81. Die Sprache muss zum Problem passen, ich glaub' da sind wir uns einig - nachdem sogar auch Bjarne Stoustrup das so sieht, koennt' da wohl tatsaechlich auch was dran sein...
Gruss
WK