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 Rene, > > > > zuerst solltest Du Dir ein einheitliches und logisches Einrücken angewöhnen: > > Als Bsp.: > > <code> > > thread xy > > { > > tuedies(); > > loop > > { > > if irgendetwas > > { > > tuedies(); > > unddas(); > > } > > else > > { > > oderdas(); > > undjenes(); > > } > > > > if dies and das and solches and > > wasanderes and jenes > > { > > //... > > } > > } > > } > > </code> > > > > Man sollte beim Einrücken immer gleich erkennen, in welcher "Ebene" man ist. > > Ansonsten ist es für einem der Helfen will, umso schwerer den Code zu lesen. > > > > Nun die Anmerkungen zu Deinem Quellcode selbst: > > > > > > > > > <code>{ > > > byte month, day, hour, min, sec; // Variablen definieren und zuweisen > > > byte LED; > > > int time; > > > int number; > > > > > > lcdext.init(); > > > //stports.setLED(1,-1); <- das sollte eigentlich das LED > > > Schalten, wenn die Heizung läuft. > > > /*******************************************/ > > > /***********Zeitschaltuhr Heizlampe*********/ > > > /*******************************************/ > > > > > > loop > > > > > > { > > > wait min!=system.minute(); // Warten auf neue Minute > > > min = system.minute(); // Wenn neue Minute, dann gleichsetzen und abarbeiten > > > day = system.dow(); // täglich abarbeiten > > </code> > > system.dow() ist der Day Of Week, also Wochentag Sonntag bis Samstag (0 bis 6) > > <code> > > > > > > /**************************************/ > > > /********* Zeitdefinition *************/ > > > /**************************************/ > > > > > > if time >= 1700 and time <= 0800 // zwischen 17:00 und 08:00 > > > and day >= 1 and day <= 31 // und vom 01. bis zum 31. > > > and month >= 10 and month <= 3 // und von Monat 10 bis Monat 3 > > </code> > > Gleich zwei Dinge: > > 1. Der Wert eines Tages im Monat kann nicht außerhalb vom 1. bis 3. liegen. > > Daher ist diese Abfrage ziemlich nutzlos. > > 2. Oben hast Du den Wochentag(dow) der Variable day zugewiesen. > > Diese hat nur einen Bereich von 0 bis 6. > > Die Parameter für die Monatsabfrage können so auch nicht funktionieren. > > Ein Monat, oder allgemeiner, eine Varibale kann nie gleichzeitig einen Wert > > größergleich 10 und kleinergleich 3 haben. > > Wenn Du nur die Monate 4 bis 9 ausnehmen willst, mußt Du das so machen: > > <code>... > > and (month >= 10 or month <= 3) // und von Monat 10 bis Monat 3 > > </code> > > Alternativ mit "nand": > > <code>... > > and (month < 10 nand month > 3) // und von Monat 10 bis Monat 3 > > > > > > > > ports.set(0,1); // (Pin 41) Einschalten > > > else // sonst > > > ports.set(0,0); // (Pin 41) Ausschalten > > > > > > }; > > </code> > > Ein Semikolon nach geschweiften Klammern ist unnötig. > > Ein Semikolon schließt eine Anweisung, einen Aufruf bzw. eine Definition ab. > > <code> > > > release; > > > };</code> > > Warum schreibst Du ein "release" hier herein??? > > Release gehört zum Capture. (Semaphor) > > Dies dient bei der CC2 zur Synchronisieren von Threads bzw. zum (temporören) > > Schutz von Ressourcen vor anderen Threads. (Siehe Handbuch Kapitel "Synchronisation") > > > > MfG André H. > > Hallo André, > > vielen Dank für Deine Hilfe, das mit dem Code einrücken > werde ich mir merken. > Wird der gesamte Code denn eigentlich täglich abgearbeitet > wenn man nichts zum Abschluß schreibt, wie zum Bsp. > continue? > > Ich werde Deine Ratschläge jetzt erst mal Umsetzen, Danke > nochmal. > > Gruß Rene
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB