Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

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; > > } > >
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB