
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
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 |