so hier der code.
vermute allerdings dass es mit dem set befehl was zu tun hat da ich eine 0 zum einschalten des lichts brauche und set macht ja ne 1. habe aber auch schon versucht set und reset zu tauschen hat aber nix gebracht.
Code:$regfile = "m8def.dat" $crystal = 1000000 $baud = 19200 $hwstack = 32 $swstack = 10 $framesize = 40 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portb.4 , E = Portc.4 , Rs = Portc.5 Config Lcd = 16 * 2 Config Lcdbus = 4 Cursor Off Config Portb.0 = Output Config Portb.5 = Output Config Portb.1 = Output Config Pind.0 = Input Config Pind.1 = Input Config Pind.2 = Input Config Pind.3 = Input Config Pinc.0 = Input Const Adc_multi = 0.00244140625 Config Adc = Single , Prescaler = Auto Start Adc Portd.0 = 1 Portd.1 = 1 Portd.2 = 1 Portd.3 = 1 Enable Interrupts Config Clock = Soft Config Date = Mdy , Separator = / Declare Sub Stunde Declare Sub Minute Declare Sub Stundew Declare Sub Minutew Declare Sub Onoff Declare Sub Licht Declare Sub Stellenmenue Dim Stellenstunde As Byte Dim Stellenminute As Byte Dim Konfiguration As Byte Dim Anaus As Byte Dim Messung As Word dim Lichtzeit as byte Licht alias portb.5 Cls Time$ = "00:00:00" Date$ = "01/01/00" Do If Konfiguration = 1 Then Locate 1 , 1 If Stellenstunde < 10 Then Lcd "0" Lcd Stellenstunde ; ":" If Stellenminute < 10 Then Lcd "0" Lcd Stellenminute End If Locate 2 , 9 Lcd Date$ Debounce Pind.0 , 0 , Stellenmenue , Sub If Konfiguration = 0 Or Konfiguration = 2 Or Konfiguration = 3 Then Locate 1 , 1 Lcd Time$ End If If Konfiguration = 1 Then 'Wecker stellen Debounce Pind.1 , 0 , Stundew , Sub Debounce Pind.2 , 0 , Minutew , Sub End If If Konfiguration = 2 Then 'Uhr stellen Debounce Pind.1 , 0 , Stunde , Sub Debounce Pind.2 , 0 , Minute , Sub End If Debounce Pind.3 , 0 , Onoff , Sub If Konfiguration = 0 And Anaus = 0 Then 'Wecker an/aus Locate 2 , 1 Lcd "aus " End If If Konfiguration = 0 And Anaus = 1 Then Locate 2 , 1 Lcd "an " End If If Stellenstunde = _hour And Stellenminute = _min And Anaus = 1 Then Portb.1 = 1 Else Portb.1 = 0 End If Messung = Getadc (0) If _hour > 20 or _hour < 8 then Portb.5 = 1 If Messung > 300 then lichtzeit = 5 set licht end if else Portb.5 = 0 End If Loop 'Stellenmenü 'Menü zum einstellen Wecker/Uhr/Datum Stellenmenue: Incr Konfiguration If Konfiguration = 4 Then Konfiguration = 0 If Konfiguration = 1 Then Locate 2 , 1 Lcd "Wecker" End If If Konfiguration = 2 Then Locate 2 , 1 Lcd "Uhr " End If If Konfiguration = 3 Then Locate 2 , 1 Lcd "Datum " End If Return 'Stunde 'Hier wird die Stunde der Uhr hochgezählt Stunde: Incr _hour If _hour > 23 Then _hour = 00 End If Return 'Minute 'Hier wird die Minute der Uhr hochgezählt Minute: Incr _min If _min > 59 Then _min = 00 End If Return 'MinuteW 'Hier wird die Minute des Weckers hochgezählt Minutew: Incr Stellenminute If Stellenminute > 59 Then Stellenminute = 0 End If Return 'Stundew 'Hier wird die Stunde des Weckers hochgezählt Stundew: Incr Stellenstunde If Stellenstunde > 23 Then Stellenstunde = 0 End If Return 'onoff 'Hier wird der Wecker ein- und ausgeschaltet Onoff: Incr Anaus If Anaus = 2 Then Anaus = 0 Return sectic: if lichtzeit>0 then decr lichtzeit end if if lichtzeit=0 then reset licht return







Zitieren

Lesezeichen