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, > > zuerst einmal ist die Initialisierung richtig. Auffällig ist nur, dass Du die Maske des Empfangsfilters auf > 0 gesetzt hat. D.h. Du empfängst auf allen Kanälen alle Frames. > > Sender: Ein Datenframe auf dem CAN-Bus besteht max. aus 8 Bytes. Wenn nichts anderes dagegen > spricht, solltest Du die gesamten Daten in einen Frame packen. Weiterhin habe ich mit mem.putfloat > anfänglich Schwierigkeiten gehabt (Fehler ILL OPA). Es kann sein, dass dieser Fehler mittlerweile > beseitigt ist. Ich benutze diese Funktion jedoch nicht mehr. Bei mir gibt es wenn vermeidbat keine > Gleitkommazahlen sondern nur Festkommazahlen (int und die Kommastellen berücksichtige ich per > Software). Du würdest bei dieser Methode mit 6 Datenbytes auskommen und alles passt in einen > Frame. Dann sendest Du den Puffer, als Framelänge hast Du aber nur 1 Byte angegeben. Du solltest > hier die wirkliche Länge Deines Frames angeben sonst wird auch nur 1 Byte übertragen. > > Empfänger: Diesen Teil habe ich in Deinem Programm nicht gefunden. Es geht los, indem Du > einem Kanal sagst, welche CAN-ID's er empfangen soll. Da Du aber die Maske ausgemacht hast, > empfängst Du alles. Das wird in einem CAN-Netzwerk nicht funktionieren. Ich würde Folgendes > vorschlagen: > can.init(can.SPEED_50,0x7FF,0x000); > can.expect(1,0x120); > > Die erste Zeile schaltet die volle Maske für die Kanäle 0..13 an, die zweite Zeile sagt dem Kanal 1 > dass er die Frame-ID's 0x120 empfangen soll. Dann testest Du auf empfangene Daten: > > if can.rxd(1) > { > can.get(1,Buffer); > //weitere Auswertung der Daten > } > > Grüße Cris > >