Für dieses Forum muß Javascript im Browser aktiviert werden!
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 newcommer, > > > hab das oben versucht komme aber nicht weiter, > > ein Temp 1631 wird am dißplay aktuallisiert angezeigt der 2 wird > > erst nach einem reset aktuell. > > anbei mein programm was mache ich falsch, danke > > Kann man das Programm Station 1 auf Station2 umkompilieren und wenn ja wie ? > > Bitte um kleine Hilfe wie man dan differenz > > Dein Programm ist auch kein Programm, sondern - sorrydas ich das sagen muß - > ein zusammengewürfeltes etwas. > > Ich füge mal die Code-Tags ein. Vielleicht fällt es Dir dann auf: (Erläuterungen siehe unten) > (Bitte nutze für Quellcode immer die Code-Tags) > <code> > > int temp[6]; > > thread main > > { > > stports.init(); //Initialisierung der Station-spezifischen Ports > > lcdext.init(); //LCD initialisieren > > ds1631.init(6); //DS1631 initialisieren an Sub-Addr.6 (A0auf GND A1A2 auf5V) > > lcdext.goto(2,0); > > lcdext.print("Boil:"); > > loop > > { > > lcdext.goto(2,5); > > temp=ds1631.readb(6);//DS1631(addr.0) mit zwei Nachkommastellen auslesen > > lcdext.zahl2(temp); //ausgelesenen Festkommaintegerwert auf LCD ausgeben. > > lcdext.put(0xDF); //Gradzeichen ausgeben > > sleep 2000; //1 Sekunde warten (1000ms) > > > > > > int temp[0]; > > { > > stports.init(); //Initialisierung der Station-spezifischen Ports > > ds1631.init(0); //DS1631 initialisieren an Sub-Addr.0 (A0-A2 auf GND) > > lcdext.goto(2,8); > > lcdext.print("Heiz:"); > > loop > > { > > lcdext.goto(2,13); > > temp=ds1631.readb(0);//DS1631(addr.0) mit zwei Nachkommastellen auslesen > > lcdext.zahl2(temp); //ausgelesenen Festkommaintegerwert auf LCD ausgeben. > > lcdext.put(0xDF); //Gradzeichen ausgeben > > sleep 1000; //1 Sekunde warten (1000ms) > > } > > } > </code> > > Du hast scheinbar per Copy&Paste einfach das ganze Programm kopiert und für den > Sensor in die Schleife des ursprünglichen Thread reinkopiert. > Das kann nicht funktioneren. > Man sollte auch verstehen, was man programmiert. > > Auch die Definition <code>int temp[0];</code> macht keinen Sinn. > Es gibt keine Arrays mit null Elementen. > Auch definierst Du ein Globales Array temp[] mit 6 Elementen, willst aber > temp nicht als Array, sondern als einzelne Variable verwenden. > Das kann nicht funktionieren. > > Ich denke Du verwechselst das mit dem expliziten Definieren von Variabeln > in CC-Basic bei der CC1, um eine Variabel auf einen bestimmten Speicherplatz zu legen. > Bei der CC1 mit Ihren 24 Byte bei der V1.1 war diese Möglichkeit sehr sinnvoll. > Bei der CC2 ist dies aber so nicht möglich. Warum auch? > Sie hat über 2700mal mehr RAM. ;-) > > Auch hast Du hier etwas nicht verstanden: > <code>> temp=ds1631.readb(0);//DS1631(addr.0) mit zwei Nachkommastellen auslesen > > lcdext.zahl2(temp); //ausgelesenen Festkommaintegerwert auf LCD ausgeben.</code> > <code>ds1631.readb()</code> liest nur die ganzzahlige Temperatur, also ohne > irgendeine Nachkomastelle aus. Zwei Nachkommastellen erhälst Du mit readi2(). > Auch wird mit <code>lcdext.zahl()</code> keine Festkommazahl ausgegeben, sondern > einfach nur eine max. zweistellige ganze Zahl. > Zahl-Funktionen in lcdext.c2 haben z.b. das Format lcdext.zahl4n1(). > Das steht hier für eine 4-stellige Zahl, wovon eine Stelle hinter dem Komma steht. > > > Ich schlage vor, Du liest im Handbuch nochmal die Grundlagen zur > Programmiersprache C2 durch. Auch solltest Du die Beispiele im Ordner "Samples" > der IDE durcharbeiten. > Auch könnte das Buch MSR mit C-Control II evtl. nicht schaden. > > Da Du vorher mit der CC1 gearbeitet hast, ist die umgewöhnung von Basic auf C2 > sicher nicht leicht. > Halte Dir aber bitte immer vor Augen, daß C2 kein Basicdialekt, sondern ein C-Dialekt ist. > Dafür steht das C in C2. > Und, nein, man kann keine Programme der CC1 für die CC2 konvertieren. > Es sind zwei völlig unterschiedliche Systeme, die nur den Namen C-Control gemeinsam haben. > Die Virtuelle Maschine der CC2 funktioniert anders als das OS der CC1. > > Der Vollständigkeit halber mal das Programm, damit es das macht, was Du > wahrscheinlich wolltest. > > <code>int temp1, temp2; // Variabeln temp1 und temp2 definieren > thread main > { > stports.init(); > lcdext.init(); > ds1631.init(0); //DS1631 initialisieren an Sub-Addr.0 > ds1631.init(6); //DS1631 initialisieren an Sub-Addr.6 > > lcdext.print("Heiz: \xDF""C"); > lcdext.goto(2,0); > lcdext.print("Boil: \xDF""C"); > loop > { > temp1=ds1631.readi2(0); > temp2=ds1631.readi2(6); > lcdext.goto(1,5); > lcdext.zahl4n2(temp1); > lcdext.goto(2,5); > lcdext.zahl4n2(temp2); > sleep 1000; //1 Sekunde warten > } > }</code> > > > MfG André H.