Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo zusammen,, > > ich habe da mal wieder ne Frage: > > ich möchte einen der CAN-Kanäle sozusagen bidirektional benutzen, d.h. auf diesem Kanal > sowohl Senden als auch Empfangen. Wenn ich die Schnittstelle initialisieren und dann einen Wert > auf den CanBus schreibe und im Anschluss mit "expect" auf eine Nachricht warte, funktioniert alles > einwandfrei. Ich hole die Nachricht mit get ab ... alles i.O. > Wenn ich dann aber mit diesen Kanal auf "ready" überprüfe, um wieder eine Nachricht zu schreiben, > bleibt mein Programm an dieser Stelle stehen, weil "ready" immer eine "0" liefert. Warum? > > Auszüge aus meinem Code > > thread main > { > can.init(can.SPEED_125,0x03FF,0x0000); > loop > { > wait can.ready(0); > can.send(0, ...); > can.expect(0,100); > wait can.rxd(0); > var = can.get(0, ...); > } > } > > Wird die Loop-Schleife zum 2.Mal durchlaufen, bleibt sie bei wait can.ready(0) stehen. > Nehme ich die can.init-Zeile als 1.Zeile mit in die Loop-schleife funktioniert alles einwandfrei. > Find ich aber persönlich nich so schön, bei jedem Schleifendurchlauf die Can-Schnittstelle neu > zu initialisieren. > > MfG