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 Stefan, > > Zuerst: Ein kleines "Hallo" oder ähnliches am Anfang eines Postings kann nicht schaden. > Auch ein kleines MfG oder ähnliches am Ende wäre nicht schlecht. > Dann gibt's meistens auch schneller antworten und es gehört auch zur Netiquette(siehe Info). > Und benutze bitte die Code-Tags für Quellcode, damit dieser richtig dargestellt wird > und besser lesbar ist. > > Nun zu Deinem Problem. > > > Habe ein kleines grosses Problem. Ich setze mit der CC2-Unit RS232 Messwerte eines > > Datenloggers auf CAN Bus um. > > Hierzu sendet die CC2 zyklisch eine Anfrage an den Logger , dieser antwortet, die Daten aus dem > > Buffer werden in CAN Botschaften verpackt und auf den Bus gelegt. > > Soweit alles schön und gut, aber leider habe ich in unregelmaessigen Abstaenden auf allen > > gemessenen Kanälen Nullen , die definitiv nicht vom Messgerät kommen. > > Vieleicht hat ja jemand eine Idee was ich falsch gemacht habe. Evtl. das mit dem Flush des > > Empfangsbuffers?? > > Du machst einen grundlegenden Fehler ! > Ich kann in Deinen Routinen keinerlei hwcom.get() oder hwcom.receive() erkennen, > sondern Du greifst auf den erweiterten Datenpuffer, den Du mit hwcom.setbuf() zugewiesen hast, zu. > Das kann nur Schief gehen. > Auf diesen Puffer darf man nicht direkt aus C2 zugreifen, da es sich um einen Ringpuffer handelt. > Außerdem solltest Du ein wenig mehr mit Arrays arbeiten. Dann wird der Thread um einiges kleiner: > > z.B.:<code> > function cpy(long src[], byte data[], byte offset) > {byte i,x; > for i=offset ... offset+3 > { x=(i-offset) shl 1; > data[x] =src[i] shr 8; > data[x+1]=src[i]; > } > } > > thread main > { > lcdext.init(); > lcdext.clear(); > lcdext.line(1); > lcdext.print("Warten auf YOKO"); > sleep 15000; > > byte s[250], in[250],i; > long b,k[31]; > > byte data_t[7]; > byte data_u[7]; > byte data_v[7]; > byte data_w[7]; > byte data_x[7]; > byte data_y[7]; > byte data_z[7]; > byte data_s[7]; > > hwcom.init (); > hwcom.setspeed (5); > hwcom.setbuf(s,250); > can.init(can.SPEED_125,0x0000,0x0000); > loop > { > hwcom.flush(); > hwcom.print("TS0"); > hwcom.put(10); > hwcom.put(27); > hwcom.put('T'); > hwcom.put(10); > hwcom.print("FM1,001,030"); > hwcom.put(10); > lcdext.clear(); > lcdext.line(1); > lcdext.print("Yoko2CAN"); > wait hwcom.rxd(); > hwcom.receive(in,250,500); > > for i= 1 ...30 > { > k[i]=mem.getlong(s,i*6 + 12); > } > > lcdext.line(2); > lcdext.print("Running"); > > cpy(k,data_s,1); > cpy(k,data_t,5); > cpy(k,data_u,9); > cpy(k,data_v,13); > cpy(k,data_w,17); > cpy(k,data_x,21); > cpy(k,data_y,25); > > data_z[0]=k[29] shr 8; > data_z[1]=k[29]; > data_z[2]=k[30] shr 8; > data_z[3]=k[30]; > > can.send(1,400,data_s,8); > can.send(2,401,data_t,8); > can.send(3,402,data_u,8); > can.send(4,403,data_v,8); > can.send(5,404,data_w,8); > can.send(6,405,data_x,8); > can.send(7,406,data_y,8); > can.send(8,407,data_z,4); > > sleep 800; > } > }</code> > > > MfG André H.
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB