PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Heizungsteuerung mit dcf77 problem



Tom K
24.10.2010, 10:00
Hallo zusammen

Ich habe ein kleines Problem mit dem DCF77. der sich aufhängt (die Empfangenen Bits laufen ums doppelte schneller)wenn ich vor die DoSchleife einer Variable sage welchen wert sie hat.

Deflcdchar 1 , 12 , 18 , 18 , 12 , 32 , 32 , 32 , 32 ' "°" Grad
Deflcdchar 2 , 32 , 32 , 32 , 32 , 32 , 32 , 31 , 31 ' replace ? with number (0-7)
Deflcdchar 3 , 32 , 32 , 32 , 31 , 31 , 31 , 32 , 32 ' replace ? with number (0-7)
Deflcdchar 4 , 31 , 31 , 31 , 32 , 32 , 32 , 32 , 32 ' replace ? with number (0-7)
Deflcdchar 5 , 4 , 4 , 4 , 4 , 21 , 14 , 4 , 32 ' replace ? with number (0-7) Pfeil unten
Deflcdchar 6 , 14 , 14 , 14 , 14 , 4 , 31 , 31 , 31 ' replace ? with number (0-7)Magnetspule


Config Lcdbus = 4
Config Lcdmode = Port
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4
Config Lcdpin = Pin , Db7 = Portd.5 , E = Portd.1 , Rs = Portd.0
Config Portd = Output
Config Porta = Output
Config Portb = Input
Config 1wire = Portc.6

Portb = 1
Declare Sub Suche_fuehler
Declare Sub Schalten
Declare Sub Schrittmotor_luft
Declare Sub Schrittmotor_mischer
Declare Sub Vorlauftemp_berechnung
Declare Sub Temperatur
Declare Sub Temperatur_berechnen
Declare Sub Stoerung_ausgabe
Declare Sub Stoerung_reset
Declare Sub Anzeige
Declare Sub Menue
Declare Sub Kessel_oder_solar
Declare Sub Boiler_solar
Declare Sub Variablen

Licht Alias Portd.6
Mv_kessel Alias Porta.1
Mv_boiler Alias Porta.2
Mv_heizung Alias Porta.3
Mv_solar Alias Porta.4
Pumpe_boiler Alias Porta.5
Pumpe_heizung Alias Porta.6
Luftantrieb_k1 Alias Portc.5 'KA2821D Treiber
Luftantrieb_k2 Alias Portc.4 'KA2821D Treiber
Enable_luft Alias Portc.3 'KA2821D Treiber
Mischerantrieb_k1 Alias Portd.7
Mischerantrieb_k2 Alias Portc.0
Mischerantrieb_k3 Alias Portc.1
Mischerantrieb_k4 Alias Portc.2
Enable_mischer Alias Porta.0
Taste_s Alias Pinb.4
Taste_plus Alias Pinb.1
Taste_minus Alias Pinb.3
Taste_rechts Alias Pinb.2
Taste_links Alias Pinb.0
0_punkt_luft Alias Pinb.5
0_punkt_mischer Alias Pinb.6
'################################################# ##############################
'__________________________________Variablen Sensoren___________________________
'################################################# ##############################
Dim Sc(9) As Byte , Temp_string As String * 10 , T As Integer , T1 As Integer
Dim Kesselfuhlerid( As Byte , Vorlauffuhlerid( As Byte , Boilerfuhlerid( As Byte
Dim Rucklauffuhlerid( As Byte , Solarfuhlerid( As Byte , Aussenfuhlerid( As Byte
Dim Raumfuhlerid( As Byte , Fuhler_ok( As Byte , Welcher_fuhler As Byte , A As Byte
Dim Kesselfuhler As Bit , Vorlauffuhler As Bit , Boilerfuhler As Bit
Dim Rucklauffuhler As Bit , Solarfuhler As Bit , Aussenfuhler As Bit
Dim Raumfuhler As Bit , Id_help( As Byte
'################################################# ##############################
'__________________________________Variablen Schrittmotoren_____________________
'################################################# ##############################
Dim Richtung_luft As Byte
Dim Schritt_mischer As Byte , Richtung_mischer As Byte
Dim Position_luft As Integer , Position_luft_soll As Integer
Dim Position_mischer As Integer , 0_punkt_mischer_ok As Bit
'################################################# ##############################
'__________________________________Variablen Temperaturen_______________________
'################################################# ##############################
Dim Kessel_temp As Integer , Vorlauf_temp As Integer , Boiler_temp As Integer
Dim Rucklauf_temp As Integer , Solar_temp As Integer , Aussen_temp As Integer , Raum_temp As Integer
Dim Neigung As Byte , Raum_soll As Byte , Kessel_ein_temp As Integer , Kessel_aus_temp As Integer
Dim Kessel_ueber As Integer , Vorlauf_soll As Long , Boiler_soll As Integer , Boiler_diff As Integer
Dim Solar_ein As Integer , Solar_aus As Integer , Nacht_diff As Integer , Kessel_soll As Integer
Dim Help_temp As Integer , Help_temp2 As Integer
'################################################# ##############################
'__________________________________Diverse Variablen____________________________
'################################################# ##############################
Dim Niveau As Byte , Niveau_ist As Byte , Hilf1 As Long , Timrr_hilf As Byte , Z As Byte
Dim Stoerung As Byte , Stoerung_old As Bit , Ausgabe As String * 22 , B As Byte , C As Byte
Dim A_menue As Integer , B_menue As Integer , C_menue As Integer
Dim A_reset As Byte , A_anzeige As Byte
Dim Probe1_temp As Integer , Probe2_temp As Integer 'Variablen zur Probe
Dim Nachtzeit_ein As Integer , Nachtzeit_aus As Integer , Nacht_aktiv As Bit
Dim Uhrzeit As Integer , Older_min As Byte , Old_sek As Byte , Old_min As Byte
Dim Timrr_lauft As Bit

Dim I As Integer
Dim Aa As Integer
Dim Ss As String * 10



Config Date = Dmy , Separator = . ', Update = 1 , Updatetime = 60

Dim Sec_old As Byte , Dcfsec_old As Byte
Config Dcf77 = Pinc.7 , Timer = 1 , Timer1sec = 1 , Debug = 0 , Check = 1
Initlcd
Enable Interrupts
Cls

Cursor Off
Lcd " Start"
Wait 1
Cls

Dim Yy As Byte
'################################################# ##############################
'__________________________________DO Loop______________________________________
'################################################# ##############################

Do '
If Taste_s = 0 Or Taste_links = 0 Then
Licht = 1
Old_sek = _sec
Older_min = _min
End If
If Taste_rechts = 0 Or Taste_plus = 0 Then
.
.
.Läuft ok


################################################## ######################################

Deflcdchar 1 , 12 , 18 , 18 , 12 , 32 , 32 , 32 , 32 ' "°" Grad
Deflcdchar 2 , 32 , 32 , 32 , 32 , 32 , 32 , 31 , 31 ' replace ? with number (0-7)
Deflcdchar 3 , 32 , 32 , 32 , 31 , 31 , 31 , 32 , 32 ' replace ? with number (0-7)
Deflcdchar 4 , 31 , 31 , 31 , 32 , 32 , 32 , 32 , 32 ' replace ? with number (0-7)
Deflcdchar 5 , 4 , 4 , 4 , 4 , 21 , 14 , 4 , 32 ' replace ? with number (0-7) Pfeil unten
Deflcdchar 6 , 14 , 14 , 14 , 14 , 4 , 31 , 31 , 31 ' replace ? with number (0-7)Magnetspule


Config Lcdbus = 4
Config Lcdmode = Port
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4
Config Lcdpin = Pin , Db7 = Portd.5 , E = Portd.1 , Rs = Portd.0
Config Portd = Output
Config Porta = Output
Config Portb = Input
Config 1wire = Portc.6

Portb = 1
Declare Sub Suche_fuehler
Declare Sub Schalten
Declare Sub Schrittmotor_luft
Declare Sub Schrittmotor_mischer
Declare Sub Vorlauftemp_berechnung
Declare Sub Temperatur
Declare Sub Temperatur_berechnen
Declare Sub Stoerung_ausgabe
Declare Sub Stoerung_reset
Declare Sub Anzeige
Declare Sub Menue
Declare Sub Kessel_oder_solar
Declare Sub Boiler_solar
Declare Sub Variablen

Licht Alias Portd.6
Mv_kessel Alias Porta.1
Mv_boiler Alias Porta.2
Mv_heizung Alias Porta.3
Mv_solar Alias Porta.4
Pumpe_boiler Alias Porta.5
Pumpe_heizung Alias Porta.6
Luftantrieb_k1 Alias Portc.5 'KA2821D Treiber
Luftantrieb_k2 Alias Portc.4 'KA2821D Treiber
Enable_luft Alias Portc.3 'KA2821D Treiber
Mischerantrieb_k1 Alias Portd.7
Mischerantrieb_k2 Alias Portc.0
Mischerantrieb_k3 Alias Portc.1
Mischerantrieb_k4 Alias Portc.2
Enable_mischer Alias Porta.0
Taste_s Alias Pinb.4
Taste_plus Alias Pinb.1
Taste_minus Alias Pinb.3
Taste_rechts Alias Pinb.2
Taste_links Alias Pinb.0
0_punkt_luft Alias Pinb.5
0_punkt_mischer Alias Pinb.6
'################################################# ##############################
'__________________________________Variablen Sensoren___________________________
'################################################# ##############################
Dim Sc(9) As Byte , Temp_string As String * 10 , T As Integer , T1 As Integer
Dim Kesselfuhlerid( As Byte , Vorlauffuhlerid( As Byte , Boilerfuhlerid( As Byte
Dim Rucklauffuhlerid( As Byte , Solarfuhlerid( As Byte , Aussenfuhlerid( As Byte
Dim Raumfuhlerid( As Byte , Fuhler_ok( As Byte , Welcher_fuhler As Byte , A As Byte
Dim Kesselfuhler As Bit , Vorlauffuhler As Bit , Boilerfuhler As Bit
Dim Rucklauffuhler As Bit , Solarfuhler As Bit , Aussenfuhler As Bit
Dim Raumfuhler As Bit , Id_help( As Byte
'################################################# ##############################
'__________________________________Variablen Schrittmotoren_____________________
'################################################# ##############################
Dim Richtung_luft As Byte
Dim Schritt_mischer As Byte , Richtung_mischer As Byte
Dim Position_luft As Integer , Position_luft_soll As Integer
Dim Position_mischer As Integer , 0_punkt_mischer_ok As Bit
'################################################# ##############################
'__________________________________Variablen Temperaturen_______________________
'################################################# ##############################
Dim Kessel_temp As Integer , Vorlauf_temp As Integer , Boiler_temp As Integer
Dim Rucklauf_temp As Integer , Solar_temp As Integer , Aussen_temp As Integer , Raum_temp As Integer
Dim Neigung As Byte , Raum_soll As Byte , Kessel_ein_temp As Integer , Kessel_aus_temp As Integer
Dim Kessel_ueber As Integer , Vorlauf_soll As Long , Boiler_soll As Integer , Boiler_diff As Integer
Dim Solar_ein As Integer , Solar_aus As Integer , Nacht_diff As Integer , Kessel_soll As Integer
Dim Help_temp As Integer , Help_temp2 As Integer
'################################################# ##############################
'__________________________________Diverse Variablen____________________________
'################################################# ##############################
Dim Niveau As Byte , Niveau_ist As Byte , Hilf1 As Long , Timrr_hilf As Byte , Z As Byte
Dim Stoerung As Byte , Stoerung_old As Bit , Ausgabe As String * 22 , B As Byte , C As Byte
Dim A_menue As Integer , B_menue As Integer , C_menue As Integer
Dim A_reset As Byte , A_anzeige As Byte
Dim Probe1_temp As Integer , Probe2_temp As Integer 'Variablen zur Probe
Dim Nachtzeit_ein As Integer , Nachtzeit_aus As Integer , Nacht_aktiv As Bit
Dim Uhrzeit As Integer , Older_min As Byte , Old_sek As Byte , Old_min As Byte
Dim Timrr_lauft As Bit

Dim I As Integer
Dim Aa As Integer
Dim Ss As String * 10



Config Date = Dmy , Separator = . ', Update = 1 , Updatetime = 60

Dim Sec_old As Byte , Dcfsec_old As Byte
Config Dcf77 = Pinc.7 , Timer = 1 , Timer1sec = 1 , Debug = 0 , Check = 1
Initlcd
Enable Interrupts
Cls

Cursor Off
Lcd " Start"
Wait 1
Cls

Dim Yy As Byte
Niveau = 5
Raum_soll = 250
Boiler_soll = 500
Boiler_diff = 100
Kessel_ueber = 950
Solar_ein = 800
Solar_aus = 900
Nacht_diff = 50
Nachtzeit_ein = 2000
Nachtzeit_aus = 500
End Sub
Kesselfuhlerid(1) = &H10 'ID 10-43-2C-A9-01-08-00-E9
Kesselfuhlerid(2) = &H43
Kesselfuhlerid(3) = &H2C
Kesselfuhlerid(4) = &HA9
Kesselfuhlerid(5) = &H01
Kesselfuhlerid(6) = &H08
Kesselfuhlerid(7) = &H00
Kesselfuhlerid( = &HE9
Vorlauffuhlerid(1) = &H10 'ID 10-98-39-A9-01-08-00-7B
Vorlauffuhlerid(2) = &H98
Vorlauffuhlerid(3) = &H39
Vorlauffuhlerid(4) = &HA9
Vorlauffuhlerid(5) = &H01
Vorlauffuhlerid(6) = &H08
Vorlauffuhlerid(7) = &H00
Vorlauffuhlerid( = &H7B
'################################################# ##############################
'__________________________________DO Loop______________________________________
'################################################# ##############################

Do '
If Taste_s = 0 Or Taste_links = 0 Then
Licht = 1
Old_sek = _sec
Older_min = _min
End If
If Taste_rechts = 0 Or Taste_plus = 0 Then
.
.
. DCF funkt nicht mehr???

Furtion
24.10.2010, 20:29
Hi,

lässt sich das so wie es ist kompilieren? Zum Einen ist da nam. ein
End Sub drinne und zum Anderen weiß ich nicht ob das so geht:
Vorlauffuhlerid( = &H7B. Btw. es gibt so eine Funktion damit kann man
die Code besser und übersichtlicher darstellen.