zizou
20.03.2008, 13:26
Hallo
ich habe das Application Board 2.0 und die C-Control M-Unit 2.0.
Die DCF 77 Empfängerplatine habe ich an die 4-polige Stifleiste vom Application Board 2.0 angeschlossen. Die rote LED "DCF Signal LED 2" leuchtet auch, das müsste doch bedeuten das ein Signal reinkommt.
Ich habe folgenden Code verwendet:
'--------------------------
'------ I/O PORTS ---------
'--------------------------
define BACKLIGHT port[16]
'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------
'-------------------------------------------------
'-- CHECK SYNC BIT SUBROUTINE -
'-------------------------------------------------
FUNCTION CHECK_DCF()
define STATUS as byte
define LSYNC as byte
CONFIG.INIT
CONFIG.GET STATUS
'-------- SYNCHRON BIT ABFRAGEN ------------ ----
if (STATUS and 00100000b) <>0 then LSYNC=MINUTE
'-------------- SYNCHRON BIT LÖSCHEN -------------
CONFIG.PUT (STATUS and 11011111b)
CONFIG.OFF
RETURN LSYNC
END FUNCTION
'-------------------------------------------------
'-- SHOW TIME AND MINUTE OF SYNC -
'-------------------------------------------------
#MAIN
define LSYNC as byte
LCD.INIT
LCD.OFF
BACKLIGHT=off
#LOOP
LSYNC=CHECK_DCF()
LCD.INIT switchonly
'------- ZEIT AUF LCD AUSGEBEN -------------------
LCD.POS 1,5
if HOUR<10 then LCD.PRINT "0" 'FÜHRENDE NULL SCHREIBEN
LCD.PRINT HOUR & ":" 'STUNDEN AUSGEBEN
if MINUTE<10 then LCD.PRINT "0" 'FÜHRENDE NULL SCHREIBEN
LCD.PRINT MINUTE & ":"
if SECOND<10 then LCD.PRINT "0" 'FÜHRENDE NULL SCHREIBEN
LCD.PRINT SECOND
LCD.PRINT " "
'-- MINUTE DER LETZTEN SYNCHRONISATION AUSGEBEN --
LCD.POS 2,1
LCD.PRINT "SYNC: "& LSYNC & " "
LCD.OFF
goto LOOP
Auf dem Display nimmt aber weder die Stunde, noch die Minute irgend einen Wert an. Der Wert der Variablen LSYNC ist immer 0.
Weiß jemand was falsch ist, bzw an was dies liegen könnte?
MFG
ich habe das Application Board 2.0 und die C-Control M-Unit 2.0.
Die DCF 77 Empfängerplatine habe ich an die 4-polige Stifleiste vom Application Board 2.0 angeschlossen. Die rote LED "DCF Signal LED 2" leuchtet auch, das müsste doch bedeuten das ein Signal reinkommt.
Ich habe folgenden Code verwendet:
'--------------------------
'------ I/O PORTS ---------
'--------------------------
define BACKLIGHT port[16]
'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------
'-------------------------------------------------
'-- CHECK SYNC BIT SUBROUTINE -
'-------------------------------------------------
FUNCTION CHECK_DCF()
define STATUS as byte
define LSYNC as byte
CONFIG.INIT
CONFIG.GET STATUS
'-------- SYNCHRON BIT ABFRAGEN ------------ ----
if (STATUS and 00100000b) <>0 then LSYNC=MINUTE
'-------------- SYNCHRON BIT LÖSCHEN -------------
CONFIG.PUT (STATUS and 11011111b)
CONFIG.OFF
RETURN LSYNC
END FUNCTION
'-------------------------------------------------
'-- SHOW TIME AND MINUTE OF SYNC -
'-------------------------------------------------
#MAIN
define LSYNC as byte
LCD.INIT
LCD.OFF
BACKLIGHT=off
#LOOP
LSYNC=CHECK_DCF()
LCD.INIT switchonly
'------- ZEIT AUF LCD AUSGEBEN -------------------
LCD.POS 1,5
if HOUR<10 then LCD.PRINT "0" 'FÜHRENDE NULL SCHREIBEN
LCD.PRINT HOUR & ":" 'STUNDEN AUSGEBEN
if MINUTE<10 then LCD.PRINT "0" 'FÜHRENDE NULL SCHREIBEN
LCD.PRINT MINUTE & ":"
if SECOND<10 then LCD.PRINT "0" 'FÜHRENDE NULL SCHREIBEN
LCD.PRINT SECOND
LCD.PRINT " "
'-- MINUTE DER LETZTEN SYNCHRONISATION AUSGEBEN --
LCD.POS 2,1
LCD.PRINT "SYNC: "& LSYNC & " "
LCD.OFF
goto LOOP
Auf dem Display nimmt aber weder die Stunde, noch die Minute irgend einen Wert an. Der Wert der Variablen LSYNC ist immer 0.
Weiß jemand was falsch ist, bzw an was dies liegen könnte?
MFG