Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Portdefinierung Kategorie: Programmierung (von Rene - 23.12.2011 14:28)
Als Antwort auf Re: Portdefinierung von wema - 22.12.2011 15:50

Hallo Heiko,

danke für Deine Hilfe, ich stelle mal den kompletten
Code ein von der Steuerung.
Ich habe das mal getestet mit long time; aber das geht
auch nicht.
Ich vermute mal ich habe weit mehr Fehler drinnen und
habe keine Ahnung wie ich weiter vorgehen soll.
Vielleicht hast du noch eine Idee.

Gru�? Rene

thread licht
  {
  byte port;
  byte Rel;
  byte day, hour, min, second;
  int  time;

     stports.init();
     lcdext.init();

/*******************************************/
/********   ANSTEUERUNG LCD    *************/
/*******************************************/

     lcdext.line(1);
     lcdext.print("  TERRA: LICHT");
sleep 500;
     lcdext.clear();

/*******************************************/
/************Zeitschaltuhr Licht************/
/******** Es wird jeden Tag geschaltet******/
/*******************************************/

               loop

     {
     min  = system.minute();
wait system.minute() != min;
     time = system.hour()*100 + system.minute();
     day  = system.dow();

/******************************************************/
/********* Zeitdefinition Stunden Minuten *************/
/************ Ein 07:00:00 Aus 18:00:00 ***************/
/******************************************************/

if time >= 0700  and time <= 1800

   stports.setRel(1,1);
else
   stports.setRel(1,0);
 };
release;
};

thread regen
  {
  byte  port;
  byte  Rel;
  byte  day, hour, min, second;
  long  time;

     stports.init();
     lcdext.init();

/*******************************************/
/********   ANSTEUERUNG LCD    *************/
/*******************************************/

     lcdext.line(2);
     lcdext.print("  TERRA: REGEN");
sleep 500;
     lcdext.clear();

/*******************************************/
/*********** Zeitschaltuhr Regen ***********/
/********Es wird jeden Tag geschaltet*******/
/*******************************************/

                loop

     {
     min  = system.minute();
wait system.minute() != min;
     time = system.hour()*100 + system.minute();
     day  = system.dow();

/**************************************************************/
/******** Zeitdefinition Stunden Minuten Sekunden *************/
/*** Ein 07:30:00 und 17:00:00 Aus 07:30:45 und 17:00:45 ******/
/**************************************************************/

if (time >= 073000  and time <= 073045) or (time >= 170000 and time <= 170045)

   stports.setRel(2,1);
else
   stports.setRel(2,0);
 };
release;
};

thread main
 
 {
 byte second;
 int  a, b, c;
 int  time;
 long timeset;
      stports.LCDlight(1);
      lcdext.init();
      lcdext.clear();

      lcdext.print("ZEIT EINSTELLUNG");
      lcdext.line(2);
      lcdext.print("BITTE  EINGEBEN");
sleep 2000;
      lcdext.clear();
      lcdext.print("     STUNDE     ");
sleep 2000;
      lcdext.clear();
      timeset=stkeyb.input (2, 2, 5000);
      a = timeset;
      lcdext.clear();
      lcdext.print("     MINUTEN    ");
sleep 2000;
      lcdext.clear();
      timeset=stkeyb.input (2, 2, 5000);
      b = timeset;
      c = 00;
      system.settime(a, b, c);
      lcdext.clear();
     
      lcdext.print("DATE EINSTELLUNG");
      lcdext.line(2);
      lcdext.print("BITTE  EINGEBEN");
sleep 2000;
      lcdext.clear();
      lcdext.print("      JAHR      ");
sleep 2000;
      lcdext.clear();
      timeset = stkeyb.input (4, 4, 5000);
      a = timeset;
      lcdext.clear();
      lcdext.print("    MONAT     ");
sleep 2000;
      lcdext.clear();
      timeset = stkeyb.input (2, 2, 5000);
      b = timeset;
      lcdext.clear();
      lcdext.print("      TAG       ");
sleep 2000;
      lcdext.clear();
      timeset = stkeyb.input (2, 2, 5000);
      c = timeset;
      lcdext.clear();
      system.setdate(a, b, c);
      lcdext.clear();
sleep 2000;
      lcdext.print("DATE AND TIME");
      lcdext.line(2);
      lcdext.print("ERFOLGREICH");
sleep 2000;
      lcdext.clear();


            loop

      {
      second = system.second();
      lcdext.line(1);
      lcdext.time(1);
      lcdext.line(2);
      lcdext.date(1);
sleep 500;
      lcdext.goto(1,2);
      lcdext.put(' ');
      lcdext.goto(1,5);
      lcdext.put(' ');
wait  second != system.second();


   {
   run lichtsteuerung.licht;
   run regensteuerung.regen;
   };
  };
 };




> Hallo Rene,
>
> ich kenne Deinen Code ja leider nicht (au�?er den zwei Zeilen, die Du dargestellt hast),
> aber wäre es möglich, dass Du bei der Variablendefinition von "time" einen Fehler gemacht
> hast?
> Bei dem von Dir dargestellten Wert von 170000 und 170045 benötigst Du nämlich einen
> Datentyp FLOAT. Byte ist sowieso zu klein und Integer hat den Wertebereich
> von −32.768 bis 32.767  !
>
> �?berprüfe das einmal!
>
> Gru�? und eine schöne Weihnachtszeit,
> Heiko
>
>  
> > //if time >= 000020  and time <= 000030 or time >= 000110 and time <= 000120 <- Testeinstellung
> >
> > if time >= 073000  and time <= 073045 or time >= 170000 and time <= 170045

> >
> > Die Einstellung mit Test dahinter geht, die andere nicht,
> > woran kann das liegen?
> >
> > Ich benötige die Sekundengenaue Steuerung, sonst ersaufen
> > meine Tiere wenn die Regenanlage loslegt.
> >
> > Gru�? Rene


    Antwort schreiben


Antworten: