CAN Bus Kategorie: CAN-Bus (von alti23 - 13.03.2008 16:33) | ||
| ||
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 | ||
Antwort schreiben Antworten: Re: CAN Bus (von TManiac - 13.03.2008 20:16) Re: CAN Bus (von TManiac - 13.03.2008 20:18) Re: CAN Bus (von alti23 - 16.03.2008 15:25) Re: CAN Bus (von TManiac - 16.03.2008 19:24) Re: CAN Bus (von alti23 - 19.03.2008 17:24) Re: CAN Bus (von TManiac - 20.03.2008 13:43) |