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: Zeitsteuerung Kategorie: Programmierung Basic (von JÜRGEN - 4.10.2008 16:56)
 Als Antwort auf Re: Zeitsteuerung von SMAX - 2.10.2008 11:34
JÜRGEN nutzt:  CC1-Unit V1.1, CC1-M-Unit V1.1, Open-Mini
Hallo SMAX
Hast Du schon die eigendliche Taktsteuerug hinbekommen?
In Anschluss mal ein Beispiel. - Es entspricht nicht Deinem Programmablauf, da Du dann noch einen
Zähler für den Durchlauf benötigst und zusätzlich für jeden Durchlauf eigene Unterprogramme für
die LED. Das wird etwas unübersichtlich für den Anfang.

- Erzähl doch mal was du mit dieser Steuerung bezwecken willst. Eventuell gibt es eine einfachere Lösung.

 Gruß Jürgen - Hier das Beispiel (Habe es auf der Open Mini ausprobiert)

'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
'O    TAKTGEBER.OCB                                  OPEN-CONTROL-BASIC     O
'O    04.10.2008                                                            O
'OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
'
' --- I/O PORTS -------------------------------------------------------------
'               PORT[1]                               'SERIELLE SCHNITTSTELLE
DEFINE LED1     PORT[2]
DEFINE LED2     PORT[4]
DEFINE LED3     PORT[5]
DEFINE LED4     PORT[6]
' --- VARIABLEN -------------------------------------------------------------
DEFINE MSEKUNDE AS BYTE                'ENTHAELT DEN WERT DER LETZTEN SEKUNDE
DEFINE MMINUTE  AS BYTE                'ENTHAELT DEN WERT DER LETZTEN  MINUTE
DEFINE ZLED1    AS BYTE
DEFINE ZLED2    AS BYTE
DEFINE ZLED3    AS BYTE
DEFINE ZLED4    AS BYTE
DEFINE ZLED5    AS BYTE
'
' --- VOREINSTELLUNGEN ------------------------------------------------------
ZLED1 = 0                                              'ZAEHLER ZURUECKSETZEN
ZLED2 = 0                                              'ZAEHLER ZURUECKSETZEN
ZLED3 = 0                                              'ZAEHLER ZURUECKSETZEN
ZLED4 = 0                                              'ZAEHLER ZURUECKSETZEN
ZLED5 = 0                                              'ZAEHLER ZURUECKSETZEN
MSEKUNDE = 0                               'MERKERBYTE SEKUNDEN ZURUECKSETZEN
MMINUTE = 0                                'MERKERBYTE MINUTEN  ZURUECKSETZEN
LED1 = OFF                                                  'LED1 EINSCHALTEN
LED2 = OFF                                                  'LED2 EINSCHALTEN
LED3 = OFF                                                  'LED3 EINSCHALTEN
LED4 = OFF                                                  'LED4 EINSCHALTEN
'
'=== HAUPTPROGRAMM ==========================================================
#START
GOSUB SEK_TAKT                             'SEKUNDENTAKT ERZEUGEN UND ZAEHLEN
GOSUB MIN_TAKT                               'MINUTENTAKT ERZEUGE UND ZAEHLEN
GOSUB LED01
GOSUB LED02
GOSUB LED03
GOSUB LED04
GOTO START                                   'WIEDER ZUM PROGRAMMANFANG GEHEN
END
'=== ENDE HAUPTPROGRAMM =====================================================

#LED01
IF LED1 AND ZLED1 > 20 THEN                              'LED 20 SEKUNDEN EIN
   LED1 = OFF
   ZLED1 = 0
END IF
IF NOT LED1 AND ZLED1 > 35 THEN                          'LED 35 SEKUNDEN AUS
   LED1 = ON
   ZLED1 = 0
END IF
RETURN

#LED02
IF LED2 AND ZLED2 > 2 THEN                                'LED 2 SEKUNDEN EIN
   LED2 = OFF
   ZLED2 = 0
END IF
IF NOT LED2 AND ZLED2 > 5 THEN                            'LED 5 SEKUNDEN AUS
   LED2 = ON
   ZLED2 = 0
END IF
RETURN

#LED03
IF LED3 AND ZLED3 > 5 THEN                                 'LED 5 MINUTEN EIN
   LED3 = OFF
   ZLED3 = 0
END IF
IF NOT LED3 AND ZLED3 > 10 THEN                           'LED 10 MINUTEN AUS
   LED3 = ON
   ZLED3 = 0
END IF
RETURN

#LED04
IF LED4 AND ZLED4 > 10 THEN                              'LED 10 SEKUNDEN EIN
   LED4 = OFF
   ZLED4 = 0
END IF
IF NOT LED4 AND ZLED5 > 2 THEN                                 '2 MINUTEN AUS
   LED4 = ON
   ZLED5 = 0
END IF
RETURN
'
' ---------------------------------------------------------------------------
' --- SEKUNDEN-TAKT --- EINE ANWEISUNG NUR EINMAL PRO SEKUNDE AUSFUEHREN ----
' ---------------------------------------------------------------------------
#SEK_TAKT
IF MSEKUNDE = SECOND THEN RETURN         '.. IN DIESER SEKUNDE SCHON GEZAEHLT
ZLED1 = ZLED1 +1
ZLED2 = ZLED2 +1
ZLED4 = ZLED4 +1
MSEKUNDE = SECOND                          'AKTUELLEN SEKUNDENWERT UEBERGEBEN
RETURN
'
' ---------------------------------------------------------------------------
' --- MINUTENEN-TAKT --- EINE ANWEISUNG NUR EINMAL PRO MINUTE AUSFUEHREN
' ---------------------------------------------------------------------------
#MIN_TAKT
IF MINUTE = MMINUTE THEN RETURN                  'ANWEISUNG SCHON AUSGEFUEHRT
ZLED3 = ZLED3 +1
ZLED5 = ZLED5 +1
MMINUTE = MINUTE                                   'AKTUELLE MINUTE SPEICHERN
RETURN
'--- HIER IST ALLES ZU ENDE -------------------------------------------------

 Antwort schreiben

Bisherige Antworten:

Re: Zeitsteuerung (von SMAX - 6.10.2008 8:02)
    Re: Zeitsteuerung (von Jürgen - 6.10.2008 19:40)
        Re: Zeitsteuerung (von SMAX - 7.10.2008 8:05)
            Re: Zeitsteuerung (von Jürgen - 7.10.2008 21:12)
                Re: Zeitsteuerung (von SMAX - 8.10.2008 6:43)