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, > 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