
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo, ich habe ein zum testen ein Treiberprogramm zum DCF Synchronisation auf meine Station hochgeladen und danach mein altes und nun kann ich meine Rollos zwar aber nicht runterfahren. Wie Bekomme ich das Treiberprogramm aus den Speicher damit ich die Rollos wieder runterfahren kann, oder habe ich in meinem Programm ein Fehler. Vielen Dank im vorraus Treiberprogramm: '-------------------------------------------------------------------- ' ERWEITERUNG: BASIC-SYSTEMERWEITERUNG DCF-SYNCHRONISATION - ' RXD - '-------------------------------------------------------------------- ' Diese Demo ladet die BASIC-SYSTEMERWEITERUNG "PAGE0_EXT1.S19" ' und zeigt wie die RTC der MICRO mit einer DCF-Uhr synchronisiert wird. ' Der Aufruf SYS DCFSYNC startet die Synchronisation, die nach ca. 2 Minuten ' abgeschlossen ist. ' Zur Kontrolle wird über die serielle Schnittstelle der Inhalt der RTC ausgegeben ' and mit LED 5 die Pulse am DCF-Eingang sichtbar gemacht. ' Mit dieser Erweiterung wird auch der Befehl RXD freigeschaltet der anzeigt, ob ' die Uhrzeit Synchronisiert ist. ' Verwendet wird er z.B. so: ' ' if RXD then goto SYNC ' if NOT RXD then goto UNSYNC ' In unserem Beispiel wird der BEEPER aktiviert wenn die Uhrzeit synchronisiert ist. ' Nach der Synchronisation läuft die Uhrzeit mit RTC-Genauigkeit weiter, sodass ' Sie SYS DCFSYNC entsprechend den Anforderungen an die Genauigkeit der RTC häufiger ' aufrufen müssen. ' Wenn die RTC einmal synchronisiert ist, wird der Interrupt abgeschaltet und muss für ' eine erneute Synchronisaton mit SYS DCFSYNC aktiviert werden. ' Gleichzeitig wir damit RXD auf false gesetzt und erst wieder true, wenn die Uhr ' erneut synchron ist. ' EINSCHRÄNKUNGEN: ' Die DCF Synchronisation betrifft nur die Uhrzeit. Datum und Wochentag werden ' nicht synchronisiert, da hierfür im System keine Variablen vorgesehen sind. ' Benötigen Sie in Ihrer Anwendung das Datum, so können sie dieses mit einem ' kleinen Unterprogramm erzeugen und in den Variablen ablegen. ' !! Die Synchronisation beeinhaltet keine Korrektur von Übertragungsfehlern !! ' Wenn Sie die Uhreit hundertprozentig sicher anzeigen zu wollen, müssen Sie ' für eine Verifizierung mehrer Rahmen selbst Sorge tragen. ' ' ' ACHTUNG: ' Das Treiberprogramm läuft interruptgesteuert im Hintergrund, auf der ' SYSCODE PAGE 0 ' Deswegen verringert sich die max. Länge des nutzbaren Basicbereiches um 256 Bytes ' also auf 1792 Bytes. Als Benutzer müssen Sie selbst darauf achten´, dass durch ein ' überlanges BASIC-Programm der Maschinencode auf Page0 nicht überschrieben wird. ' Der SYSCODE muss nur ein einziges Mal geladen werden. Er verbleibt dann resident ' im Speicher. ' Das angeschlossene DCF-Uhrenmodul muss während der Sekundenimpulse von HI auf LO tasten. ' '----------------------------------------------------------------------- ' SIE DÜRFEN DIESEN TREIBER NUR LADEN, WENN DIE PAGE0/1 NICHT VON ANDEREN ' TREIBERN/SYSTEMERWEITERUNGEN, DIE SIE BENÖTIGEN, BELEGT IST ! ' Der Treiber ist nicht für die MICRO mit der OS-Version 2.00 geeignet '--------------------------------------------------------------------- '-------------------------- '------ I/O PORTS --------- '-------------------------- define DCFIN port[4] define TASTER port[3] define LED port[5] define BEEPER port[6] '-------------------------- '---- SYSTEM MEMORY ------- '-------------------------- define OLD_SEC byte[1] define a byte[2] '-------------------------- '---- SYSTEM JUMPS ------- '-------------------------- const DCFSYNC=FD09h SYS DCFSYNC '------- DIE UHR EINSTELLEN --------------------- LED=on HOUR=0 MINUTE=0 SECOND=0 baud R9600 pause 5 print"START" '-------------------------------------------------- ' SYNCHRONIZE THE RTC WITH DCF77 - '-------------------------------------------------- #TICKING IF DCFIN=off then LED=on if DCFIN=on then LED=off if OLD_SEC = second then goto TICKING #BLINK OLD_SEC=second print HOUR; print":"; print MINUTE; print ":"; print SECOND if RXD then beep 100,5,BEEPER goto TICKING syscode "page0_ext1.s19" attributes ccproject end attributes ------------------------------------------------------------------------------------------------------------------------------------ Meine Rollosteuerung: '-------------------------- '------ I/O PORTS --------- '-------------------------- define ADC8 ad[8] define LIGHT port[16] 'werden für die Relais. und LED benötigt define SDA as port[9] define SCL as port[10] '-------------------------- '---- SYSTEM MEMORY ------- '-------------------------- define EXTPORT as byteport[4] define LED1 as port[25] define LED2 as port[26] define LED3 as port[27] define LED4 as port[28] define KINDHOCH as port[29] 'REL1 define SCHLAFHOCH as port[30] 'REL2 define KINDRUNTER as port[17] 'REL3 31 define SCHLAFRUNTER as port[18] 'REL4 18 import "C:\Programm\CCB\basicpp\LIB\GET_KEY.BAS" import "C:\Programm\CCB\basicpp\LIB\GET_VALUE.BAS" 'damit wird der Bildschirm und anderes Inizialisiert '(nur zum Anfang erforderlich) #INIT LCD.INIT SDA=on SCL=on EXTPORT=OFF 'jetzt werden alle LED und Relais ausgeschaltet damit 'kein Rolladenmotor durchbrennt und nichts falsches angezeigt wird. KINDHOCH=OFF SCHLAFHOCH=OFF KINDRUNTER=OFF SCHLAFRUNTER=OFF LED1=OFF LED2=OFF LED3=OFF LED4=OFF LCD.POS 1,1 LCD.PRINT " " LCD.POS 2,1 LCD.PRINT " " PAUSE 150 #SCHLEIFE define INVALUE as word LCD.INIT LCD.PRINT " CODE EINGEBEN" LIGHT=off '----------------------------------------------------- ' '----------------------------------------------------- INVALUE=GET_VALUE() '------ START REQUESTING A VALID CODE (1357) --------- if INVALUE=1 then goto KINDHOCH if INVALUE=4 then goto KINDRUNTER if INVALUE=44 then goto KINDHALBRUNTER if INVALUE=2 then goto SCHLAFHOCH if INVALUE=5 then goto SCHLAFRUNTER if INVALUE=55 then goto SCHLAFHALBRUNTER if INVALUE=45 then goto ALLERUNTER if INVALUE=12 then goto ALLEHOCH 'if (hour=8 and minute>=15) then goto ALLEHOCH LCD.POS 2,1 LCD.PRINT "unbekannte Eing." pause 100 goto SCHLEIFE '----------------------------------------------------- #KINDHOCH KINDRUNTER=OFF LCD.POS 1,1 LCD.PRINT " Kinderzimmer " LCD.POS 2,1 LCD.PRINT " wird geoeffnet " KINDHOCH=ON PAUSE 1500 KINDHOCH=OFF goto SCHLEIFE '----------------------------------------------------- #KINDRUNTER KINDHOCH=OFF LCD.POS 1,1 LCD.PRINT " Kinderzimmer " LCD.POS 2,1 LCD.PRINT "wird geschlossen" KINDRUNTER=ON PAUSE 1500 KINDRUNTER=OFF goto SCHLEIFE '----------------------------------------------------- #KINDHALBRUNTER KINDHOCH=OFF LCD.POS 1,1 LCD.PRINT " Kinderzimmer " LCD.POS 2,1 LCD.PRINT "wird halb gesch." KINDRUNTER=ON PAUSE 650 KINDRUNTER=OFF goto SCHLEIFE '---------------------------------------------------- #ALLERUNTER KINDHOCH=OFF SCHLAFHOCH=OFF LCD.POS 1,1 LCD.PRINT " alle Rollos " LCD.POS 2,1 LCD.PRINT " werden geschl. " KINDRUNTER=ON PAUSE 1500 SCHLAFRUNTER=ON PAUSE 1500 KINDRUNTER=OFF SCHLAFRUNTER=OFF goto SCHLEIFE '----------------------------------------------------- #ALLEHOCH KINDRUNTER=OFF SCHLAFRUNTER=OFF LCD.POS 1,1 LCD.PRINT " alle Rollos " LCD.POS 2,1 LCD.PRINT "werden geoeffnet" KINDHOCH=ON PAUSE 1500 SCHLAFHOCH=ON PAUSE 1500 KINDHOCH=OFF SCHLAFHOCH=OFF goto SCHLEIFE '------------------------------------------------------ #SCHLAFHOCH SCHLAFRUNTER=OFF LCD.POS 1,1 LCD.PRINT " Annikas Rollo " LCD.POS 2,1 LCD.PRINT " wird geoeffnet " SCHLAFHOCH=ON PAUSE 1500 SCHLAFHOCH=OFF goto SCHLEIFE '----------------------------------------------------- #SCHLAFRUNTER SCHLAFHOCH=OFF LCD.POS 1,1 LCD.PRINT " Annikas Rollo " LCD.POS 2,1 LCD.PRINT "wird geschlossen" SCHLAFRUNTER=ON PAUSE 1500 SCHLAFRUNTER=OFF goto SCHLEIFE '----------------------------------------------------- #SCHLAFHALBRUNTER SCHLAFHOCH=OFF LCD.POS 1,1 LCD.PRINT " Annikas Rollo " LCD.POS 2,1 LCD.PRINT "wird halb geschl" SCHLAFRUNTER=ON PAUSE 650 SCHLAFRUNTER=OFF goto SCHLEIFE '----------------------------------------------------- attributes ccproject ccproject ccproject ccproject end attributes Meine Homepage: http://www.wandbilder.net |
| Antwort schreiben |