Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Zeitschaltuhr sekundengenau Kategorie: C-Control I V1.1 (von Kay - 7.06.2006 18:56)
 Als Antwort auf Zeitschaltuhr sekundengenau von Andreas - 7.06.2006 18:27
Kay nutzt:  CC1-Unit V1.1, CC1-Station V1.1
sowas hatten wir hier schon mal, allerdings finde ich den part mit der
sekundengenauen steuerung nicht mehr.
deshalb hier nochmal das komplette programm, das
ich nachher noch kurz erläutere:

'Zeitschaltuhr - Glockensteuerung

define i        byte    'Schleifenzaehler
define j        byte    'Auslesepuffer

define port_1  port[7]
define port_2  port[8]


' Uhrzeit auf kurz vor 7:00:00 stellen (fuer Testlauf)
hour = 7 : minute = 01 :second = 55


#main         'Hauptschleife, Hauptprogramm

   gosub SWITCHES

goto main


#SWITCHES 'Subroutine: Schaltzeittabellen auslesen, Ports setzen
   for i = 0 to 252 step 3 'minutengenaues Schalten, Port 1, maximal 84
      looktab PORT_1,i,j
      if j = 99 then goto P1Loopend
      if j <> hour   then next
      looktab PORT_1,i + 1,j
      if j <> minute then next
      looktab PORT_1,i + 2,j
      port_1 = j
      next
   #P1Loopend

   for i = 0 to 252 step 4 'sekundengenaues Schalten, Port 2, maximal 62
      looktab PORT_2,i,j
      if j = 99 then goto P2Loopend
      if j <> hour   then next
      looktab PORT_2,i + 2,j
      if j <> second then next
      looktab PORT_2,i + 1,j
      if j <> minute then next
      looktab PORT_2,i + 3,j
      port_2 = j
      next
   #P2Loopend
    ' i = second        'Diese zwei Befehle den Programmablauf synchen.
    ' wait i <> second  'Erst mit Anbruch einer neuen Sekunde gibt die
                        'die Routine dann ans Hauptprogramm zurück
return

'Schaltzeittabellen mit Stunde, Minute, Portstatus
'maximal 84 Zeilen mit Zeiten,
'die letzte Zeile MUSS eine 99 enthalten!
table PORT_1
'  hh : mm - H/L
   07   00    1
   07   01    0
   07   02    1
   07   03    0
   07   04    1
   07   05    0
   07   06    1
   07   07    0
   07   08    1
   07   09    0
   07   10    1
   07   11    0
   99   'Tabellenende, stehen lassen!
tabend
'Schaltzeittabellen mit Stunde, Minute, Sekunde, Portstatus
'maximal 62 Zeilen mit Zeiten,
'die letzte Zeile MUSS eine 99 enthalten!
table PORT_2
'  hh : mm : ss - H/L
   07   00   00    1
   07   00   01    0
   07   00   02    1
   07   00   03    0
   07   00   04    1
   07   00   05    0
   07   00   06    1
   07   00   07    0
   07   00   08    1
   07   00   09    0
   07   00   10    1
   07   00   11    0
   99   'Tabellenende, stehen lassen!
tabend


zu beachten ist hierbei, dass das unterprogramm einfach aus der hauptschleife
heraus angesprungen werden kann, somit also jederzeit aufrufbar ist und die
verwendeten variablen nur bedingt im  hauptprogramm zur verfügung stehen, aber
durchaus genutzt werden können.
zweitens ist offensichtlich, dass man auf den ersten teil, der lediglich
minutengenau schaltet, selbstverständlich verzichten kann, wenn man nur sekundengenau
arbeiten kann und muss. man kann einfach die erste schleife und die dazugehörige tabelle
einfach entfernen und muss die andere nur anpassen (digiport, labels und so weiter.)

in die mainloop gehört natürlich dein sonstiges hauptprogramm und der punkt
des uhrzeitstellens diente nur testzwecken,  um zu sehen,  ob das ding auch
wirklich  funzt wie ein uhrwerk.

ich hoffe,  das ist was für  dich.

Kay

 Antwort schreiben

Bisherige Antworten:

Re: Zeitschaltuhr sekundengenau (von Andreas - 8.06.2006 20:08)
    Re: Zeitschaltuhr sekundengenau (von Kay - 9.06.2006 6:00)
        Re: Zeitschaltuhr sekundengenau (von Andreas - 10.06.2006 1:45)
            Re: Zeitschaltuhr sekundengenau (von Kay - 10.06.2006 6:49)
                Re: Zeitschaltuhr sekundengenau (von Andreas - 10.06.2006 10:29)
                    Re: Zeitschaltuhr sekundengenau (von Kay - 10.06.2006 11:21)
                       Re: Zeitschaltuhr sekundengenau (von Andreas - 13.06.2006 20:35)