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 

 DCF Antenne funktioniert, aber die Zeit wird nicht übernommen ? Wieso ? Kategorie: Programmierung Basic (von Bravo - 8.06.2006 11:12)
Bravo nutzt:  CC1-Station V2.0
Hallo Leute !
Habe die DCF Antenne installiert und mit dem DCF Monitor getestet - es funktioniert.
Mit der Funkuhr Software aus Stefan Tappertzhofen (das ich übrigens gelesen habe) Buch funktioniert auch .
Nur mit meiner Software funktioniert nicht.
Die Antenne ist fest eingerichtet und bei erneuten Tests funktioniert immer und sehr gut.
Ich weis nicht mals wonach ich suchen soll.
Hier ist der Listing :


define LIGHT         port[16]
define tempO as word
define tempU as word  
const DS1631=158 'Adresse
const DS1632=154 'Adresse
define ADC8           ad[8]
define SDA          port[9]
define SCL          port[10]
define EXTPORT      byteport[4]
define REL1 port [29]
define REL2 port [30]
define REL3 port [31]
define REL4 port [32]
DEFINE REL5 AS PORT[1]
DEFINE REL6 AS PORT[26]
DEFINE REL7 AS PORT[27]
define ADC  ad[8]
define DIM1        da[1]
define DIM2        da[2]
Define Dimmer1     as byte[10]
Define Dimmer2     as byte
define HUNDERTER   as byte
define ZEHNER      as byte
define EINER       as byte
define VALUE as word
define VALUE1 as word
define i as byte
define x as byte
define y as byte
define a as byte
define INVALUE2 as word
define hygro as word
DEFINE f AS BYTE
define INVALUE as word
define INVALUE1 as word

import "c:\LIB\GET_KEY.BAS"
import "c:\LIB\GET_VALUE.BAS"
import "c:\LIB\Show_Time.BAS"
import "c:\LIB\DS1631_GENERIC.BAS"

    '----- LED HELLIGKEIT -----
const BRIGHT0 =07h
const BRIGHT1 =17h
const BRIGHT2 =27h
const BRIGHT3 =37h
const BRIGHT4 =47h
const BRIGHT5 =57h
const BRIGHT6 =67h
const BRIGHT7 =77h

const h=74h
const t=78h
const u=1Ch
const o=5ch

'               7 SEGMENT DECODER
FUNCTION DECODE (CODE as byte)
SELECT CASE CODE
  CASE 0
  CODE=3Fh
  CASE 1
  CODE=06h
  CASE 2
  CODE=5Bh
  CASE 3
  CODE=4Fh
  CASE 4
  CODE=66h
  CASE 5
  CODE=6Dh
  CASE 6
  CODE=7Dh
  CASE 7
  CODE=07h
  CASE 8
  CODE=7Fh
  CASE 9
  CODE=6Fh
END SELECT
RETURN CODE
END FUNCTION

'--      IIC SEND BUFFER TO SAA1064               ----

FUNCTION SENDBUF(BRIGHT as byte,DIGIT1 as byte,DIGIT2 as byte,DIGIT3 as byte,DIGIT4 as byte)
IIC.INIT
IIC.START
IIC.SEND 118 'WRITE ADDRESS
IIC.SEND 0
IIC.SEND BRIGHT
IIC.SEND DIGIT1
IIC.SEND (DIGIT2 or 128)
IIC.SEND DIGIT3
IIC.SEND DIGIT4
IIC.STOP
IIC.OFF
END FUNCTION

#INIT
LIGHT=off
SDA=on
SCL=on
EXTPORT=OFF

LIGHT=off
SENDBUF(BRIGHT1,255,255,255,255)
pause 10
SENDBUF(BRIGHT1,0,0,0,0)
pause 10
SENDBUF(BRIGHT1,255,255,255,255)
pause 10
SENDBUF(BRIGHT1,0,0,0,0)
rel1 = off
rel2 = off
rel3 = off
rel4 = off
rel5 = off
rel6 = off
rel7 = off
dim1 = 0
dim2 = 0
Dimmer1 = 0
x=0
dimmer2 =0
y=0

LCD.INIT
LCD.PRINT "TERRA-C v1.0"
 FOR f = 1 TO 3
 BEEP 50, 50, 10
 NEXT f

lcd.clear
DS1631RESET(DS1631)
DS1631RESET(DS1632)
DS1631SET_STATUS(DS1631,1)
DS1631SET_STATUS(DS1632,1)
lcd.off

#LOOP
i= i+1
a= a+1
INVALUE2=GET_key()

if (hour = 07) and (minute = 00) then
DIMMER1 = 1
end if
if (hour = 17) and (minute = 00) then
DIMMER1 = 2
end if
 
if dimmer1 = 1 then
 if a = 114 then
 if x < 255 then
 x = x+1
 Dim1 = x
 end if
 end if
 end if
 
 If Dimmer1 = 2 then
 if a = 114 then
 if x > 0 then
 x = x-1
 Dim1 = x
 end if
 end if
 end if
 
 if dimmer1 = 3 then
 if x < 255 then
 x = x+5
 Dim1 = x
 end if
 end if
 
 If Dimmer1 = 4 then
 if x > 0 then
 x = x-5
 Dim1 = x
 end if
 dimmer1 =0
 end if
 
prin x &"   "& y & "  " &Hour&":"&minute&":"&Second&"  "& dimmer1

if invalue2 = 1 then rel1 = on
if invalue2 = 2 then rel2 = on
if invalue2 = 3 then rel3 = on
if invalue2 = 4 then rel4 = on
if invalue2 = 5 then rel5 = on
if invalue2 = 6 then rel6 = on
if invalue2 = 7 then rel7 = on
 
if invalue2 = 9 then
dimmer1 = 3
end if

if invalue2 = 12 then rel1 = off
if invalue2 = 12 then rel2 = off
if invalue2 = 12 then rel3 = off
if invalue2 = 12 then rel4 = off
if invalue2 = 12 then rel5 = off
if invalue2 = 12 then rel6 = off
if invalue2 = 12 then rel7 = off
if invalue2 = 0 then
dimmer1 = 4
end if

 if (hour = 22) and (minute = 30) then REL1 = ON
 if (hour = 22) and (minute = 37) then REL1 = OFF
 if (hour = 22) and (minute = 31) then REL2 = ON
 if (hour = 22) and (minute = 36) then REL2 = OFF
 if (hour = 22) and (minute = 32) then REL3 = ON
 if (hour = 22) and (minute = 35) then REL3 = OFF
 if (hour = 22) and (minute = 33) then REL4 = ON
 if (hour = 22) and (minute = 34) then REL4 = OFF

if invalue2 = 13 then
lcd.init
lcd.clear
LCD.PRINT "UHR STELLEN"
pause 30
lcd.clear
LCD.PRINT "STUNDE STELLEN "
INVALUE=GET_VALUE()
hour = INVALUE
pause 30
LCD.Clear
LCD.PRINT "MINUTE STELLEN"
INVALUE1=GET_VALUE()
minute = INVALUE1
pause 30
lcd.off
end if

DS1631CONVERT(DS1631)
DS1631WAIT_READY(DS1631)
TEMPo=DS1631GET_TEMP(DS1631)
TEMPo=TEMPo SHR 7
if (TEMPo and 0100h) = 0100h then TEMPo=(TEMPo or FE00h)
value= (tempo*10)/2
HUNDERTER=VALUE/100
ZEHNER=(VALUE-(HUNDERTER*100))/10
EINER=VALUE-HUNDERTER*100-ZEHNER*10
LIGHT=off
if i = 1 then  SENDbUF(BRIGHT1,DECODE(EINER),DECODE(ZEHNER),DECODE(HUNDERTER),t)
If i = 7 then  SENDBUF(BRIGHT1,DECODE(EINER),DECODE(ZEHNER),DECODE(HUNDERTER),o)
if i = 14 then  SENDBUF(BRIGHT1,0,0,0,0)

DS1631CONVERT(DS1632)
DS1631WAIT_READY(DS1632)
TEMPu=DS1631GET_TEMP(DS1632)
TEMPu=TEMPu SHR 7
if (TEMPu and 0100h) = 0100h then TEMPu=(TEMPu or FE00h)
value1= (tempu*10)/2
HUNDERTER=VALUE1/100
ZEHNER=(VALUE1-(HUNDERTER*100))/10
EINER=VALUE1-HUNDERTER*100-ZEHNER*10
LIGHT=off
if i= 15 then SENDBUF(BRIGHT1,DECODE(EINER),DECODE(ZEHNER),DECODE(HUNDERTER),t)
if i= 22 then SENDBUF(BRIGHT1,DECODE(EINER),DECODE(ZEHNER),DECODE(HUNDERTER),u)
if i= 29 then SENDBUF(BRIGHT1,0,0,0,0)

hygro= (60*10)/2
HUNDERTER=hygro/100
ZEHNER=(hygro-(HUNDERTER*100))/10
EINER=hygro-HUNDERTER*100-ZEHNER*10
LIGHT=off
if i= 30 then SENDBUF(BRIGHT1,DECODE(EINER),DECODE(ZEHNER),DECODE(HUNDERTER),h)
if i= 37 then SENDBUF(BRIGHT1,DECODE(EINER),DECODE(ZEHNER),DECODE(HUNDERTER),o)
if i= 44 then SENDBUF(BRIGHT1,0,0,0,0)
if i= 45 then SENDBUF(BRIGHT1,DECODE(EINER),DECODE(ZEHNER),DECODE(HUNDERTER),h)
if i= 52 then SENDBUF(BRIGHT1,DECODE(EINER),DECODE(ZEHNER),DECODE(HUNDERTER),u)
if i= 59 then SENDBUF(BRIGHT1,0,0,0,0)

lcd.init
       
LCD.POS 1,1
lcd.print SHOW_TIME()
LCD.pos 1,10
LCD.PRINT " H:"  & hygro/10 & "." & (hygro and 1)*5 & "%"
LCD.POS 2,1
LCD.PRINT "T1:" & value/10 & "." & (value and 1)*5 & "°"
LCD.pos 2,9
LCD.PRINT "T2:" & value1/10 & "." & (value1 and 1)*5 & "°"
lcd.off

if i= 60 then i=0
if a= 115 then a=0

goto LOOP

attributes    
ccproject      
ccproject    
ccproject    
end attributes



Vielleicht hilft mir jemand.
Danke
mfg

Bravo

 Antwort schreiben

Bisherige Antworten:

Re: DCF Antenne funktioniert, aber die Zeit wird nicht übernommen ? Wieso ? (von Ingo - 16.06.2006 17:52)