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.
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB