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 > > > > > Hallo Cris, > > erstmal Danke für Deine Antwort. Der Empfänger Teil meines Programms war ein typischer copy/paste > Fehler. Ich habe die Empfangsmaske auf 0x07FF gestellt. Verwende mittlerweile nur noch ein Daten- > frame. Danach konnte ich Daten empfangen, allerding nur sporadisch ca. jede fünte. Deshalb hab ich > den Empfangsteil umgeschrieben. Ich sende bei jeden Empfang auf dem CAN Bus das Empfangene auf > der seriellen Schnittstelle zur Kontrolle aus. Komisch das dabei etwa nur jedes fünfte Telegramm an- > kommt. Meine Tischkonfiguration enthält 1,5m verdrillten Rangierdraht J19 auf Appl. Board gesteckt und > 120 Ohm parallel zum Station Eingang. Wobei auf 1,5m Reflexionen bei 50kBit/s ??? > > lg > > Alexander