Werbung
Hi,
ich habe hier grade eine kleine Kriese mit Bascom und zwar benutze ich den
Soft UART und lese Daten per Inkey() ein, und gebe sie dann per Hard UART
weiter, die Daten wertden quasi durchgeleitet.
DAS Problem ist nur wenn ich 0 sende (also nicht das Zeichen "0" ) sondern
Print Hex (0) das ist nichts, kA wie man das besser beschreiben kann.
Vill. trifft es, das Erste Zeichen an AscII Tabellen besser....
Gut Waitkey() funktioniert, wenn man null abschickt kommt auch null an.
Aber Inkey() gibt den Wert 0 zurück wenn es nichts empfangen hat...
Was soll Inkey zurückgeben, wenn es Hex(0) empfängt?
Gibt es da iWas was man machen kann?
Wenn wir grade dabei sind: Ischarwaiting(#Channel) kann man laut meiner
Interpreation der Beschreibung auch für Soft Uarts beutzen, warum gibt
Bascom dann ein Fehler aus, das der Soft UART nicht unterstützt wird?
Grüße Furtion
Hi,
jo der Soft-Uart mag vill. nicht umbedingt der tollste sein, aber Inkey()
sollte doch funktionieren, ich denke auch, das das beim HardUart nicht gehen
wird, denn da liefert Inkey() ja auch 0 zurück wenn er nichts empfangen hat,
wenn man aber Null sendet, hat es logischerweise auch den Wert 0, d.h.
es gibt 2 verschiedene Zustände, die den gleichen Wert habe....
Grüße Furtion
Hi,
Du kannst bei SoftUART normalerweise nicht warten bis was gekommen ist, Du musst schon immer mitlauschen am UART, deswegen geht da Inkey nicht.
Waitkey wartet solange bis was kommt, also ist ein 0 auch eine 0.
Bei Hard-UART, macht das, wie der Name sagt, die Hardware, und wenn ein Byte fertig übertragen ist, kann man checken ob eins da ist, oder eben nicht. Bei Software geht das nicht, da kein Byte kommt wenn man nicht selber die Bytes reinschiebt in die Software vom EingangsPort !
Hi,
Was ist, wenn man per Waitkey() wartet, und dann die Daten empfängt,
das Problem was ja besteht, ist, das die Gegenrichtung (HardUart---> Soft)
auch noch abgefragt werden will. Könnte man das dann per Timer machen?
Das der per Ischarwaiting schaut ob ein Zeichen im Hardbuffer liegt und es
dann holt, oder wieder zu waitkey geht.
Grüße Furtion
oder per interrupt
on urxc
Vor den Erfolg haben die Götter den Schweiß gesetzt
Der Hard-UART kann man per Config Serialin einen "asynchronen" Empfang, mit Puffer, beibringen.
Siehe Bascom-Hilfe.
Nur fürs Archiv:
So kann man auch NULL (&b00000000) am Softwareuart erkennen:
Code:Open "comd.5:2400,8,n,1" For Input As #2 inputbin #2, buffer(1), 25
Lesezeichen