Gast
#3320475
Hello World! Ich baue einen Wecker mit einem ATtiny2313 und dem Pollin-DFC1-Modul. Zeit und Datum werden bereits auf einem LCD anzeigt... Soweit so gut... Jetzt frage ich mich - um einen Wecker daraus zu bauen - soll die DCF77-Zeit mit den Variablen Dim Wecker_std und Dim Wecker_min (Byte) verglichen werden um dann das Bit Alarm für 3600 Sekunden (Variable Alarmzeit) auf 1 zu setzen... Oder so ähnlich... Kann mir jemand helfen? Hier mal der Code, der teilweise aus Stefan Hoffmanns tollem Buch "Einstieg in die Elektronik mit AVR Microcontroller und Bascom" kommt - ab dem DCF-Config: Config Dcf77 = Pinb.4 , Inverted = 0 , Timer = 1 , Debug = 0 , Check = 1 , Gosub = Sectic Config Date = Dmy , Separator = . Enable Interrupts Config Portb.3 = Input 'Pinb.3 Stunden Stellen Config Portb.2 = Input 'Pinb.2 Minuten Stellen Config Portb.1 = Input 'Pinb.1 Schlummer Config Portb.0 = Input 'Pinb.0 Alarm_ein Alarm_ein Alias Pinb.0 'Schalter gegen 0 Portb.0 = 1 'Pullup-Widerstand Config Portd.6 = Output Relais Alias Portd.6 Dim Neue_sekunde As Bit Dim Alarm As Bit Dim Schlummer As Bit Dim Wecker_std As Byte Dim Wecker_min As Byte Dim Alarmzeit As Byte Do 'Relais = Dcf_status.0 'blinkt bei DCF77 empfang Debounce Pinb.3 , 0 , Stdstellen , Sub 'Tasten an Pinb.3 gegen 0 springt Stdstellen an Debounce Pinb.2 , 0 , Minstellen , Sub 'Tasten an Pinb.2 gegen 0 springt Minstellen an Debounce Pinb.1 , 0 , Schlummern , Sub 'Tasten an Pinb.1 gegen 0 springt Minstellen an If Neue_sekunde = 1 Then Neue_sekunde = 0 Gosub Anzeige End If Loop End Sectic: Neue_sekunde = 1 Return Anzeige: If Dcf_status.7 = 0 Then Locate 1 , 1 : Lcd "wait... " Locate 2 , 1 : Lcd Time$ Else Locate 1 , 1 : Lcd Date$ Locate 2 , 1 : Lcd Time$ End If Return Minstellen: Stdstellen: Schlummern: