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 !  

> <b>Huch hab's verrafft: > Hier das zu ober ähnlich Hauptprogramm:</b> > <i> > thread main > { > if (variable.init == 0) > { > funktionen.thread_Init(); > if (variable.init == 1) > station_lcd.print("Bereit..."); > } > > run threads.rxd; > run threads.write_buf; > run threads.read_buf; > } > </i> > > > > <b>Hier die 3 Threads:</b> > <i> > thread read_buf > { > string s,t,buffer; > int i,a; > > if ((variable.write_ptr > 0) | (variable.write_Runde > 0 )) > { > if ((variable.write_Runde > variable.read_Runde) | ((variable.write_Runde == variable.read_Runde) & > (variable.read_ptr <= variable.write_ptr))) > { > i = (variable.write_ptr + variable.write_Runde * 1000) - (variable.read_ptr + variable.read_Runde * 1000); > if (i >= 8) > { > for a = 0 ... 7 > { > str.putchar(s, variable.e_buf[variable.read_ptr]); > variable.read_ptr = variable.read_ptr + 1; > } > hwcom.print(s); > s = ""; > } > else > { > for a = 0 ... i-1 > { > str.putchar(s, variable.e_buf[variable.read_ptr]); > variable.read_ptr = variable.read_ptr + 1; > } > hwcom.print(s); > s = ""; > > } > } > } > } > > > thread write_buf > { > int i; > while (hwcom.rxd() == -1) > { > variable.e_buf[variable.write_ptr] = hwcom.get(); > variable.write_ptr = variable.write_ptr + 1; > > if (variable.write_ptr == 1001) > { > variable.write_ptr = 0; > variable.write_Runde = variable.write_Runde + 1; > } > } > } > > thread rxd > { > wait hwcom.rxd() == -1; > } > </i> > > <b>Die Funktion:</b> > <i> > function thread_Init() > { > hwcom.setspeed(5); > station_lcd.init(); > station_io.Clear(); > variable.init = 1; > variable.StringLen = 0; > variable.read_ptr = 0; > variable.read_Runde = 0; > variable.write_ptr = 0; > variable.write_Runde = 0; > > station_lcd.print("INITIALISIERUNG"); > plm.beep(12); > sleep 50; > plm.beep(-1); > > sleep 1500; > station_lcd.clear1(); > sleep 1000; > > }</i> > > <b>und die Variablen:</b> > <i> > //Variable: > byte e_buf[1000]; > int write_ptr, write_Runde; > int read_ptr, read_Runde; > int StringLen, init; > </i> > > <b>Also das Problem mit dem Datenaustausch wäre gelöst das lag am mitgesendeten(von Conrad) Kabel. > Chefchen hat mit ein anderes gegeben - jetz gehts! > > Nur könnt ihr euch mal den READ Thread anschauen?? Der schickt nämlich immer ne 0 zurück! Aber wieso??
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB