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 SMAX - 6.10.2008 8:02)
 Als Antwort auf Re: Zeitsteuerung von JÜRGEN - 4.10.2008 16:56
SMAX nutzt:  sonstige
Hallo Jürgen,

zur Frage ob ich schon eine Timer-Steuerung hinbekomen habe - Ja, habe ich.
Das Hauptproblem ist eigentlich der Timer im Timer.

Derzeit läuft alles noch im Sekunden-Takt und ich führe den Blink-Impuls durch den Befehl TOG LED aus.
Wenn ich mit Minuten Arbeite schaffe ich den Blinker nicht schneller da der Durchlauf so lange dauert.
Da das Ganze nach 180 Sekunden aus dem Ruder läuft setzte ich den zaehler und sekunden zurück auf 0 und wiederhole halt zig mal den Ablauf.
Dementsprechend groß ist mein verbrauchter Speicher (ca.1800)

Soweit bin ich jetzt mit meinem Programm zwar glücklich, aber nicht überglücklich und hoffe auf eine bessere Lösung.

Durch den Testlauf dieser Gerätschaft stellte sich heraus, dass der Stromverbrauch sehr hoch ist.
Ich betreibe das Ganze an einer 9V Batterie.
An LED3 schalte ich mit einem Transistor den Minuspol frei für eine weitere Applikation auf der Platine.

Den Pluspohl zu schalten währe mir lieber gewesen, ich weis aber nicht wie das geht.

Mein Anschluss sieht so aus:



                                                   |  - Ausgang wenn Signal von R1 kommend (LED3 an Mikro)
                                                   |
                                                 _|_
                  ___                         |      \
Mikro---------[___]------------------------|       |     T1 = BC547C
                    R1                        |___ /
                                                   |
                                                   |
                                                GND

Anstatt den GND zu schalten möchte ich gerne den Pluspol zum Schalten nutzen, kennt wer Abhilfe?

Gruß
Martin






> 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 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)