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, > > du musst zwei unterschiedliche Kanäle wählen. Da beide CC's asynchron laufen und auf dem > > gleichen Kanal senden und empfangen, ist es keine gerichtete Übertragung möglich. > > Torsten > > > > > Hallo, > > > also ich bin relative neu in dem Gebiet und soll später mal ein modifiziertes CAN-Bus Protkoll > > > entwickeln. Doch zuerst hab ich noch ein paar "Kinderschuh"-Probleme: > > > Also hoer die Aufgabe, die ich gerade machen will: > > > Habe 2 COntroller, die über CAN miteinander kommunizieren. Ein Controller schickt dem anderen eine > > > kleine Rechenaufgabe, die der zweite Controller ausrechnen soll und dem ersten das Ergebnis > > > zurückschickt, und dieser das Ergebnis auf dem Display ausgibt. Wenn ich den einem nur schicken > > > und den anderen nur empfange lasse klappt alles auch wunderbar. Jetzt ahb ich noch 2 Threads > > > zusätzlich gemacht, damit der einen auch empfangen und der andere auch senden kann. Das geht nur > > > irgendwie nicht so wie ich will. > > > Hier mal mein Code, da ich mich noch nicht so gut damit auskenne, kann es sein, dass ich da > > > irgendwas übersehen habe. > > > Für Anregungen wäre ich sehr dankbar :) > > > Dagmar > > > > > > > > > int result; > > > //------------- > > > thread send > > > //------------- > > > //Controller 1: dieser Thread stellt die Rechenaufgabe und sendet die Parameter > > > { > > > run 20; > > > sleep 200; > > > byte send_data[2]; > > > int a; > > > int b; > > > loop{ > > > a= 10; > > > b= 11; > > > send_data[0]=a; > > > send_data[1]=b; > > > > > > lcdext.home(); > > > lcdext.zahl2(a); > > > lcdext.put('+'); > > > lcdext.zahl2(b); > > > lcdext.put('='); > > > lcdext.put('?'); > > > > > > if can.ready(1) == -1 { > > > can.send(1,100,send_data,2); > > > } > > > > > > } > > > } > > > //------------- > > > thread recieve > > > //------------- > > > //Controller1: dieser Thread soll das Ergebnis empfangen und auf dem Display ausgeben > > > { > > > run 5; > > > int a; > > > int b; > > > byte get_res[1]; > > > get_res=100; > > > can.expect(1,100); > > > sleep 200; > > > loop{ > > > if can.rxd(1) > > > { > > > can.get(1,get_res); > > > lcdext.goto(2,1); > > > lcdext.zahl2(a); > > > lcdext.put('+'); > > > lcdext.zahl2(b); > > > lcdext.put('='); > > > lcdext.zahl2(get_res[0]); > > > } > > > break; > > > } > > > } > > > > > > > > > //------------- > > > thread compute > > > //------------- > > > //Controller2: dieser Thread empfängt die Aufgabe und berechnet das Ergebnis > > > { > > > run 5; > > > byte buffer[2]; > > > > > > can.expect(1,100); > > > buffer=100; > > > sleep 200; > > > loop > > > { > > > if can.rxd(1) > > > { > > > can.get(1,buffer); > > > lcdext.home(); > > > lcdext.zahl2(buffer[0]); > > > lcdext.put('+'); > > > lcdext.zahl2(buffer[1]); > > > lcdext.put('='); > > > result = buffer[0] + buffer[1]; > > > > > > lcdext.zahl(result); > > > } > > > > > > } > > > } > > > > > > //------------- > > > thread send_computed > > > //------------- > > > //Controller2: dieser Thread schickt das Ergebnis an Controller1 zurück > > > { > > > > > > run 5; > > > sleep 200; > > > byte res[1]; > > > res[0]= result; > > > sleep 200; > > > loop{ > > > can.send(1,100,res,1); > > > } > > > } > > > > > > //------------- > > > thread main > > > //------------- > > > > > > { > > > lcdext.init(); > > > can.init(0,0x0000,0x0000); > > > sleep 1000; > > > > > > run send; > > > run recieve; > > > //run compute; > > > //run send_computed; > > > halt; > > > } > > > Kannst Du mir mitteilen wie Dein Problem gelöst wurde, ich habe im Moment genau das Selbe > Muss man beim can.init eine andere Einstellung wählen ?? > > Danke für Antwort > Peter