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 Manfred, > > Du hast in Deinen Routinen ein paar Fehler. > Der bedeutenste liegt hier:<code> > string msg50s[4]; //5 zeilen a 30zeichen text > ... > string msg100s[4]; //5 zeilen a 30zeichen text > </code> > Du schreibst "5 Zeilen". Definiert hast Du aber nur 4. > Das ist der Grund für das Stehenbleiben. > Du greifst auf ein jeweils fünftes Element zu, welches garnicht existiert > Es werden dann Speicherbereiche überschrieben, welche nichtmehr > zu dem definierten Array gehören. > > Das nächste ist ein fehlendes Semikolon hinter <code>m_param.msg100s[i]=""</code>, was > der Compiler eigentlich bemängeln sollte: > <code>for i = 0 ... 4 > {m_param.msg50s[i]="";m_param.msg100s[i]=""} > </code> > > MfG André H. > > > > Hallo cc2net Gemeinde, > > > > ich habe hier ein etwas seltsames Problem: > > > > Wenn man versucht zwei String Array in einer Schleife zu löschen, > > bleibt die C-Controll Station hängen! > > Löscht man - nur - das zweite String Array nicht in einer schleife, sondern einzeln, > > funktioniert alles. > > Das Problem tritt nicht nur in der Initialisierung auf, sondern auch in anderen Programm Modulen. > > > > Das Programm ist in mehrere Module aufgeteilt. > > 1. Modul alle globalen Variablen und Konst. > > 2. alle globalen Funktionen > > 3. Initialisierung > > 4. pc-ausgabe über hwcom > > . > > . > > usw. > > > > > > > > im 1. Modul: m_param > > . > > . > > . > > > > <code> > > //m_pc > > int status00; //zeit & Temp normale Ausgabe > > int status01; //zeit & sonst. > > int msg50; //System Init > > string msg50s[4]; //5 zeilen a 30zeichen text > > int msg100; //fehler > > string msg100s[4]; //5 zeilen a 30zeichen text > > int msg_ok; //hwcom frei > > int pc_com_ausg[10]; //fehler - grund der Ausgabe zum PC > > . > > . > > . > > .</code> > > usw. > > > > Die beiden String Array werden Initialisiert > > > > ------------------------------------------------------------------------ > > hier sollen die beiden String Array gelöscht werden: > > > > Modul m_init > > > > 1. Versuch > > > > for i = 0 ... 4 > > {m_param.msg50s[i]="";m_param.msg100s[i]=""} > > oder > > > > for i = 0 ... 4 > > {str.clear (m_param.msg50s[i]);str.clear (m_param.msg100s[i])} > > > > nach der 2.ten Schleife, c-comtroll steht (getestet mit LED ein/aus) > > > > ........................................................................ > > 2. Versuch > > > > > > for i = 0 ... 4 str.clear (m_param.msg50s[i]); > > for i = 0 ... 4 str.clear (m_param.msg100s[i]); > > > > oder > > > > for i = 0 ... 4 m_param.msg50s[i]=""; > > for i = 0 ... 4 m_param.msg100s[i]=""; > > > > gleiche Reaktion wie vorher! > > > > ........................................................................ > > 3. versuch > > > > for i = 0 ... 4 str.clear (m_param.msg50s[i]); > > str.clear (m_param.msg100s[0]); > > str.clear (m_param.msg100s[1]); > > str.clear (m_param.msg100s[2]); > > str.clear (m_param.msg100s[3]); > > str.clear (m_param.msg100s[4]); > > . > > . > > . > > usw. > > > > mit diesem Programm läuft die C-Controll ganz normal weiter!! > > ........................................................................ > > > > In weiteren Modulen tritt das gleich Problem auf. Die String Variablen werden ausgegeben, und anschließend gelöscht. > > Bei der Stringausgabe in einer Schleife über hwcom zum PC werden teilweise > > falsche Zeichen oder zu viele Zeichen ausgegeben. > > > > Das Programm funktioniert mit dieser Konstruktion soweit, aber das ist keine saubere Programmierung. > > Außerdem bleibt die Logik irgendwo auf der Strecke. > > > > Vielleicht hatte jemand so ein ähnliches Problem, und kann mir helfen > > > > Manfred > > > >
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB