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: