Sehe ich das richtig das in deinem Programm die Zeit auf den Ports D.1 - D.3 Ausgegeben wird oder wofür sind die da ?!
Gruß Tjark
Sehe ich das richtig das in deinem Programm die Zeit auf den Ports D.1 - D.3 Ausgegeben wird oder wofür sind die da ?!
Gruß Tjark
Geändert von Projekt 2252 (09.04.2012 um 16:06 Uhr)
Hallo,
nicht ganz. Diese PINs werden geschaltet, wenn die Einschalt-oder Ausschaltzeit mit der aktuellen Zeit des Mikrocontrollers übereinstimmt.
Wenn das Herz involviert ist, steht die Logik außen vor! \/
Ok also kann ich denn hier anstatt dem _ vor dem hour die Stunde reinschreiben
Gruß TjarkCode:Schaltuhr: For B = 1 To 3 If Stundeein(b) = 3 hour Then ' <--- so in etwa ? If Minuteein(b) = _min Then Set Portd.b End If End If If Stundeaus(b) = _hour Then If Minuteaus(b) = _min Then Reset Portd.b End If End If Next B Return
Nein. _hour ist eine "Systemvariable", wo die Stunde drin ist. Für mein Beispiel kommen die Schaltzeiten in die Variablen Stunde... und Minute...
Also um Portd.1 um 10:30 Uhr einzuschalten kommt in die Variablen Stundeein(1)=10 ; Minuteein(1)=30
Zum Ausschalten um 11:45 Uhr dann Stundeaus(1)=11; Minuteaus(1)=45.
Für Portd.2 und Portd.3 jeweils die Zahl in den Klammern dementsprechend.
Wenn das Herz involviert ist, steht die Logik außen vor! \/
Ok danke) Und wie stelle ich die Uhr bzw. läuft sie immer los wenn ich das Board einschalte? Denn als ich Dcf77 in der Bascom Hilfe gesucht habe, habe ich was von zeitzonen usw. gelesen. Außerdem steht am Anfnag "Action
Instruct the compiler to use DCF-77 radio signal to get atom clock precision time" Bekommt der Atmega die Uhrzeit per funk ? .
Gruß Tjark
So hab jetzt ein bisschen rumprobiert wenn ich in dem Programmpunkt Uhranzeigen Print Time$ ; " schreibe bekomme ich etwas raus aber es ist nur 00:00:00 und aktualisiert sich auch nicht sekündlich wie es sollte wenn ich das richtig verstanden habe da Gosub Uhranzeigen ja unter Sectic steht sondern es kommt rasend schnell hintereinander.
Gruß Tjark
Hab es mit der Zeit hinbekommen und versuch die LED so zu steuern:
Sie geht auch um 23:14:00 an aber nicht mehr aus... Was kann das sein ?Code:$regfile = "m32def.dat" $crystal = 16000000 Config Dcf77 = Pind.7 , Timer = 1 , Gosub = Sectic 'DCF-Uhr Routine, lässt sich auch mit einem xMHZ Quarz ohne DCF-Empfänger nutzen Config Porta.1 = Output Enable Interrupts Ddrd = &B00001110 'Ausgänge für Zeituhr auf PortD.1-Portd.3 Date$ = "09/04/00" Time$ = "23:13:55" Do 'übersichtliche Hauptschleife... Gosub Temperaturregeln Gosub Tastatur Gosub Sonstiges Loop End Sectic: 'wird sekündlich aufgerufen Gosub Uhranzeigen Gosub Temperaturanzeigen If _sec = 0then Gosub Schaltuhr End If Return Schaltuhr: If Time$ = "23:14:00" Then Set Porta.1 End If If Time$ = "23:14:05" Then Reset Porta.1 End If Return Temperaturregeln: 'hier dein Code für die Temperaturregelung rein Return Tastatur: 'hier dein Code für die Tastatur / Drehencoder rein Return Sonstiges: 'hier dein Code für Anderes rein Return Uhranzeigen: 'hier dein Code für die Uhrzeitanzeige rein Print Time$ ; "" Return Temperaturanzeigen: 'hier dein Code für die Temperaturanzeige rein Return
Gruß Tjark
Geändert von Projekt 2252 (09.04.2012 um 22:46 Uhr)
So jetzt Funktioniert es mit dem Schalten der Ports. Meint ihr ich hab da irgendein Denkfehler oder kann ich das so verwenden ? Hier der Code
Gruß TjarkCode:$regfile = "m32def.dat"$crystal = 16000000 Config Dcf77 = Pind.7 , Timer = 1 , Gosub = Sectic 'DCF-Uhr Routine, lässt sich auch mit einem xMHZ Quarz ohne DCF-Empfänger nutzen Config Porta.1 = Output Config Porta.2 = Output Enable Interrupts Date$ = "09/04/00" Time$ = "23:13:55" Do 'übersichtliche Hauptschleife... Gosub Temperaturregeln Gosub Tastatur Gosub Sonstiges Gosub Zeitschalteruv Gosub Zeitschalterwaerme Loop End Sectic: 'wird sekündlich aufgerufen Gosub Uhranzeigen Gosub Temperaturanzeigen If _sec = 0then End If Return Schaltuhr: Return Zeitschalteruv: If Time$ = "23:14:00" Then Set Porta.1 End If If Time$ = "23:14:05" Then Reset Porta.1 End If Return Zeitschalterwaerme: 'Erster Schaltvorgang If Time$ = "23:14:02" Then Set Porta.2 End If If Time$ = "23:14:07" Then Reset Porta.2 End If 'Zweiter Schaltvorgang If Time$ = "23:14:10" Then Set Porta.2 End If If Time$ = "23:14:15" Then Reset Porta.2 End If Return Temperaturregeln: 'hier dein Code für die Temperaturregelung rein Return Tastatur: 'hier dein Code für die Tastatur / Drehencoder rein Return Sonstiges: 'hier dein Code für Anderes rein Return Uhranzeigen: Print Time$ ; "" Return Temperaturanzeigen: 'hier dein Code für die Temperaturanzeige rein Return
Geändert von Projekt 2252 (10.04.2012 um 10:56 Uhr)
Lesezeichen