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 ! > Das Ziel ist 2 C-Control Reglerboards und eine Station über CAN-Bus zuverbinden. > 2 Unit senden > 1 Unit empfängt > > Leider gibt es keine korrekte Datenübertragung, Abschlusswiderstände mit je 120 Ohm sind gesetzt, > 2 Stück gesamt. > Die 3 Units befinden sich räumlich getrennt ca. 30 m Entfernung. > Cat5 Kabel zur Vernetzung gelegt. H an H L an L GND am GND usw. > Variablen sind definiert. > Es tut sich was, aber nicht zuverlässig, kann das an der Adressierung liegen ? > > Hier ein Auszug aus dem Quellcode. Ich bitte um Hilfe und Überprüfung des Quellcodes. Möglichst > sollten auch die Sender empfangen können. > > Mit 2 Units läuft alles perfekt ! > > ********************* > //Unit 1 > > > > byte can8,can9; > > thread canempfang > > { > > // CAN-Kanal 2 > > byte buffer[8]; > > if can.rxd(2) {can.request(2);can.get(2,buffer);} > can8=buffer[0]; > > // CAN-Kanal 5 > > byte buffer2[8]; > > if can.rxd(5) {can.request(5);can.get(5,buffer2);} > can9=buffer2[0]; > > > } > > > thread main > > { > can.init(0,0x0000,0x0000); > can.expect (5,500); > can.expect (2,200); > > > run canempfang; > halt; > } > > > ******************** > //Unit 2 > > > byte data[7]; > > thread send > > { > > data[0]=1; > data[1]=0; > data[2]=0; > data[3]=0; > data[4]=0; > data[5]=0; > data[6]=0; > data[7]=0); > can.publish(5,500,data,8); > ) > > thread main > > { > can.init(0,0x0000,0x0000); > run cansend; > > halt; > > } > > > ******************** > //Unit 3 > > byte data2[7]; > > thread send > > { > > data2[0]=1; > data2[1]=0; > data2[2]=0; > data2[3]=0; > data2[4]=0; > data2[5]=0; > data2[6]=0; > data2[7]=0; > can.publish(2,200,data,8); > > } > > thread main > > { > can.init(0,0x0000,0x0000); > > run cansend; > > halt; > > } > > thread empfang > > // CAN-Kanal 2 > > { > byte buffer[8]; > > if can.rxd(2) {can.request(2);can.get(2,buffer);} > can8=buffer[0]; > > // CAN-Kanal 3 Werkstatt > > byte buffer2[8]; > > if can.rxd(5) {can.request(5);can.get(5,buffer2);} > can9=buffer2[0]; > > > } > > > thread main > > { > can.init(0,0x0000,0x0000); > can.expect (5,500); > can.expect (2,200); > > run canempfang; > halt; > } >