swcom.rxd(),swcom.put(),swcom.get,(),swcom.ready() Kategorie: Programmierung (von Klaus-Dieter Reiners - 26.01.2003 22:31) | |
| |
Hallo, CC2 kommuniziert mit einem BS2(BasicStamp) über swcom. Beim Senden eines Wertes nutze ich die Funktion: swcom.put(i) // i = Wert<=255 Auf der anderen Seite kommt dieser Wert auch an und zwar immer, wenn die �bertragung nur langsam genug ist. Lasse ich die �bertragung des Wertes über eine Schleife laufen, dann schleichen sich Fehler ein. Ich dachte mir vor einem erneuten Senden, probiere ich es mal mit der Funktion swcom.ready(); damit CC2 nicht zu früh loslegt. Leider - das habe ich auch irgendwo im Forum gelesen - macht dieses "ready()" nicht das Gewünschte. Einzige Möglichkeit für mich: ich habe ein "sleep" eingebaut. Genau die gleichen Erfahrungen habe ich mit dem umgekehrten Weg. Auch hier muss ich es langsam angehen lassen. Die Anweisung "wait swcom.rxd()", die ich dort verwende, bringt den BS2 dazu nichts zu senden, wenn ich es mit Handshake versuche. Erst wenn ich ihm sage, sende, egal was CC2 dazu sagt, laufe ich durch die Schleife nach dem "wait swcom.rxd()". Aber auch hier liefert swcom.get(), nicht sofort die Werte, die BS2 abgesandt hat, ich muss solange in einer Schleife bleiben, bis ein Wert grö�er Null angekommen ist. Das Ganze kann natürlich daran liegen, das ich die Jumper auf dem ApplicationBoard dort gelassen habe, wo sie von Hause aus sind. Ich habe das so verstanden, dass eine Beseitigung dieser Jumper (crts etc) dazu führt, dass ich nicht mehr gleichzeitig mit hwcom und swcom arbeiten kann. So habe ich zwar jetzt eine Lösung für mein Problem, bin aber sicher, dass das viel eleganter geht. Es würde mir sicher helfen, wenn ich wü�te, was die Funktionen: ready(); put(); rxd(); so eigentlich mit den swcom.ports anstellen. Vielleicht kann ich dann BS2 bitten, mir beim Datenfluss zu helfen. Vielen Dank. Klaus-Dieter | |
Antwort schreiben Antworten: Re: swcom.rxd(),swcom.put(),swcom.get,(),swcom.ready() (von André H. - 27.01.2003 11:02) |