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