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: Schaltuhr -- mal wieder Kategorie: C-Control I V1.2/2.0 (von Schau ma mal - 11.06.2007 21:56)
 Als Antwort auf Schaltuhr -- mal wieder von Friedel - 10.06.2007 19:34
> Ich -- leider Anfänger -- habe folgendes Programm in "Basic ++" für meine C-Control I Station 2.0 (Version 2.06) mit angeschlossener DCF-Uhr geschrieben. Unter "CC Basic 2.0" lief´s so leidlich; jetzt nicht mehr.(Uhrzeit u. Datum sollen ausgegeben werden, und es soll zeit-, tages- und monatsabhängig ein Relais geschaltet werden.)
> Leider gibt es in "Basic ++" keine Simulationsmöglichkeit, sonst  könnte ich es vielleicht selber rauskriegen.
>
> Von "Conrad" existiert das Programm "11_ECHTZEITUHR_1.bas", das ich in mein Programm eingebaut habe, aber
> zum 1.
> zeigt die LCD-Anzeige permanent in der 1. Zeile "00:00:00"
> und in der 2. Zeile "Mo 1.1.2004" an;
>
> zum 2. schaltet das Relais nicht.(Nur 1x, wenn ich das Programm vom PC zur Station übertrage)
>
> Kann einer von Euch einmal über das Programm "gucken" und mir sagen, was ich falsch gemacht habe ?
> Und noch eine Bitte habe ich:
> Wie kann ich durch Drücken z. B. der Taste F1 erreichen, dass das Programm für "heute" aussetzt und "morgen" wieder normal startet? Ich weiß, das funktioniert mit irgendwelchen "aus-" u. "einbits", aber das ist zu hoch für mich. Im Voraus vielen Dank! Friedel :-)
> -----------------------------------------------------------------------------------------------------------------------------------------------
>
> attributes 'brauche ich das überhaupt?      
> ccproject 'brauche ich das überhaupt?
> ccproject 'brauche ich das überhaupt?
> end ccproject 'brauche ich das überhaupt?
> end attributes 'brauche ich das überhaupt?
>
> define LIGHT as port[16]
> define REL1         bit[21] 'Küche
> define STATION_IO   byte[3] 'brauche ich das überhaupt?
> define EXTPORT      byteport[4] 'brauche ich das überhaupt?
>
> define aktuelleZeit word
> define a  word
> a = 1500 'Einschaltzeit
> define b  word
> define d  word
> define c  word
> c=2200 'Ausschaltzeit
>
> define OLDSEC as byte
>
> #INIT
> LIGHT=on
> LCD.INIT
> LCD.CLR
> '-------- WILLKÜRLICHE VOREINSTELLUNG -------------
> hour=23
> minute=59
> second=58
> day=31
> month=12
> year=3
>
> #LOOP
> '------- AUF DEN SEKUNDENWECHSEL WARTEN ----------
> if OLDSEC=SECOND then goto LOOP
> OLDSEC=SECOND
> pause 5
> '------- ZEIT AUF LCD AUSGEBEN -------------------
> LCD.POS 1,5
> if HOUR<10 then LCD.PRINT "0"         'FÜHRENDE NULL SCHREIBEN
> LCD.PRINT  HOUR                       'STUNDEN AUSGEBEN
> LCD.PRINT ":"                         'TRENNZEICHEN SCHREIBEN
> if MINUTE<10 then LCD.PRINT "0"       'FÜHRENDE NULL SCHREIBEN
> LCD.PRINT  MINUTE
> LCD.PRINT ":"                         'TRENNZEICHEN SCHREIBEN
> if SECOND<10 then LCD.PRINT "0"       'FÜHRENDE NULL SCHREIBEN
> LCD.PRINT  SECOND
> LCD.PRINT "  "
> '--------- DATUM AUF LCD AUSGEBEN ----------------
> LCD.POS 2,1
>
> SELECT CASE dow 'WOCHENTAG ZUWEISEN  
>     CASE 1
>     LCD.PRINT "MO"
>     CASE 2
>     LCD.PRINT "DI"
>     CASE 3
>     LCD.PRINT "MI"
>     CASE 4
>     LCD.PRINT "DO"
>     CASE 5
>     LCD.PRINT "FREI"
>     CASE 6
>     LCD.PRINT "SA"
>     CASE 7
>     LCD.PRINT "SO"
> END SELECT    
> '-------------------------------------------------
>     LCD.PRINT "  "
>     LCD.PRINT  DAY
> LCD.PRINT "."
> LCD.PRINT  MONTH
> LCD.PRINT "."
> LCD.PRINT "200"
> LCD.PRINT  YEAR
> LCD.PRINT "    "
> '-------------------------------------------------
> 'Hier erscheint eigenes Programm
> aktuelleZeit = Hour * 100 + Minute
> if month = (1 or 12) then b = a 'Januar od. Dez.
> if month = (2 or 11) then b = a + 100 'Febr. od. Nov.
> if month = (3 or 10) then b = a + 200 'März od. Okt.
> if month = (4 or 9)  then b = a + 300 'April od. Sept.
> if month = (5 or 8)  then b = a + 400 'Mai od. Aug.
> if month = (6 or 7)  then b = a + 500 'Juni od. Juli
>
> if dow > 6 then dow = 0 'dient dazu, einen bug zu umgehen
> if dow = 1 then d = 10 'Montag
> if dow = 2 then d = 20 'Dienstag
> if dow = 3 then d = 15 'Mittwoch
> if dow = 4 then d = 4  'Donnerstag
> if dow = 5 then d = 0  'Freitag
> if dow = 6 then d = 17 'Samstag
> if dow = 0 then d = 11 'Sonntag
>
> 'Küche
> if aktuelleZeit = (b + 30 + d) and (second =1) then goto schaltenRel1 'Licht einschalten
> if aktuelleZeit = (b + 35 + d) and (second =1) then goto schaltenRel1 'Licht ausschalten
> if aktuelleZeit = (b + 41 + d) and (second =1) then goto schaltenrel1 'Licht einschalten
> if aktuelleZeit = (c + 5 + d) and (second =1) then goto schaltenrel1 'Licht ausschalten
> '........................................
>
> goto LOOP
>
> #schaltenRel1 'Küche
> rel1=ON
> EXTPORT=STATION_IO   'ZUSÄTZLICH EXTERNEN PORT BESCHREIBEN; brauche ich das überhaupt?
> pause 25
> rel1=OFF
> EXTPORT=STATION_IO   'ZUSÄTZLICH EXTERNEN PORT BESCHREIBEN; brauche ich das überhaupt?
> pause 25


Sollte der Befehl '#LOOP' nicht auch irgendwo ein Ende haben?

 Antwort schreiben

Bisherige Antworten:

Re: Schaltuhr -- mal wieder (von Friedel - 12.06.2007 19:30)