
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
> DRINGEND! Bitte um Antwort! Wenn's wirklich dringend ist, sollte man die Probleme möglichst mundgerecht servieren. ;-) Also: Kategorie ist "Unit/Micro/Station" und Du hast? Unten sprichst Du einerseits von Station (die hĂ€tte auch Deine Relais schon drin) andererseits sprichst Du von Uhrzeit "anzeigen", was nun z. B. das LCD des Application-Boards oder etwa doch die IO-Unit zur Station sein kann? Oder ganz einfach per print ĂŒber die V.24? Dann vermisse ich fĂŒr einen von Dir vermuteten Fehler im Betriebssystem ein minimales Code-Beispiel, etwa hour = 17 print hour ' hier kommt 17 raus hour = 0 print hour ' hier kommt immer noch 17 raus > Ich muĂ ein Relaise je nach Temperatur zeitabhĂ€ngig schalten (zwischen 8-9 Stunden), und dies Tage- > bis wochenlang. Was denn nun? 8-9 Stunden oder tage- bis wochenlang? Oder meinst Du, das Relais soll zwischen 8 und 9 Stunden anziehen, aber Dein Programm soll mehrere Tage laufen? Wieso nicht endlos? > Und da dachte ich, daĂ ich am und nach jedem Schaltvorgang die Uhr mit dem Befehl > hour=0, second=0 zurĂŒcksetzen kann, wProgrammanfang orauf wiederum von Null weg Sekunden und Stunden > gezĂ€hlt werden. Hmm, ich kann mir nicht vorstellen, dass diese Zuweisungen mit entsprechenden Ergebnissen nicht möglich sein sollten. Also vermute ich zunĂ€chst einmal bei Dir einen Programmfehler. Auf jeden Fall geht diese Verwendung aber m. E. am Zweck der internen Uhr vorbei, weil die ja eine Uhr ist, und kein Timer. ;-) > Dies wĂ€re fĂŒr mich die ideale (und vor allem verstĂ€ndliche) Lösung. ABER: Hour=0 etc. wird von der > Control-Station völlig ignoriert. Glaube ich nicht. > Das Ding zeigt stur die aktuelle Stunde an. Ein minimales belegendes Code-Beispiel bitte. > Kann man Stunden und Minuten im Programm auf Null setzen, Ja. > Und zĂ€hlt das ganze dann wieder richtig???? Wenn Du eine DCF-Antenne dran hast, sicher nicht sehr lange. Ob mit oder ohne Antenne, wĂŒrde ich das Programm umstellen, so dass es die Uhr als Uhr nimmt, und nicht als Timer. Also etwa ungetestet, trivial skizziert so: define OnHours byte ' wieviele Stunden soll es denn an bleiben (max 255) define OnTime word ' Angezogen um (Minuten seit Mitternacht) define OnDay word ' Angezogen am (Tage seit 1.1.2000) #RelaisAn if year > 20 then goto error ' Echtes Datum noch nicht gesetzt OnTime = hour * 60 + minute OnDay = year * 400 + month * 31 + day ' der Einfachheit halber grobe Formel fuer obere AbschĂ€tzung OnMinutes = computeHours * 60 ' je nach Temperatur, max 24 Stunden K1=on #loop pause 1 if (OnTime + OnMinutes) / (24 * 60) > 0 then goto OnTilNextDay ' else Heute noch fertig if OnTime + OnMinutes < hour * 60 + minute then goto loop 'else goto off #OnTilNextDay if year * 400 + month * 31 + day <= OnDay then goto loop ' neuer Tag noch nicht da if (OnTime + OnMinutes) mod (24 * 60) < hour * 60 + minute then goto loop #off K1 = off HTH Bye Achim |
| Antwort schreiben |