gut, die schaltung ist soweit aufgebaut.
- mega8 in auslieferungszustand
- ein 20*4 lcd ist erfolgreich angeschloseen
- ein uhrenquarz (32, 7... kHz) ist an xtal angeschlossen ohne externe kondensatoren
hier mein code:
thx an andree-hb.Code:' +-------------------------------------------------------------------------------+ ' | Projektname: Terrarium Kontroll Einheit | ' | Projektbeschreibung: Steuereinheit mit Temperaturmessung und Relaissteuerung. | ' | Zeitsteuerung über Softclock und Uhrenquarz | ' | | ' | Dateiname: tke.bas | ' | Version: 0.2 | ' | | ' | Author: René Brixel | ' | Kontakt: rbrixel@capsob.de | ' | | ' | Start des Projekts: 27.04.2007 | ' | Ende des Projekts: --.--.---- | ' +-------------------------------------------------------------------------------+ '--------------- AVR Einstellungen --------------- $regfile = "m8def.dat" 'AVR ATMega 8... $crystal = 1000000 '...mit internen 1 MHz Config Date = Mdy , Separator = / Config Clock = Soft Enable Interrupts '--------------- PORT Einstellungen --------------- Ddrb = &B00000000 '1 = Ausgang; 0 = Eingang Portb = &B00000001 'Wenn Eingang, dann 1 = PullUp aktiviert Ddrd = &B01111111 '1 = Ausgang; 0 = Eingang Portd = &B10000000 'Wenn Eingang, dann 1 = PullUp aktiviert Taster_enter Alias Pind.7 'Taster Enter / Set Taster_menu Alias Pinb.0 'Taster Setup / Menu '--------------- LCD Einstellungen --------------- Config Lcd = 20 * 4 'Ein 20 * 4 Zeilen LCD Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.4 , Rs = Portd.6 Config Lcdbus = 4 '4 Bit Modus Cursor Off 'Cursor des LCDs ausschalten '--------------- Variablen Deklaration --------------- Time$ = "00:00:00" 'Setzen auf Startwert Date$ = "00/00/00" 'Setzen auf Startwert '--------------- HAUPTPROGRAMM --------------- Do Locate 1 , 1 Lcd Time$ 'Zeige Zeit in Zeile1 Locate 2 , 1 Lcd _day ; "/" ; _month ; "/0" ; _year 'Zeige Datum in Form DD/MM/YY in Zeile2 If Taster_menu = 0 Then Gosub Time 'wiederhole Anzeige bis Taster 1 zum Stellen gedrückt, springe nach Sub "Time" Waitms 200 Loop End 'Stunde Time: Waitms 200 Cls 'lösche Zeilen Do Locate 1 , 1 Lcd "Stunde einstellen:" 'Stunden setzen Locate 2 , 1 Lcd _hour If Taster_enter = 0 Then 'Mit Taster 2 Incr _hour 'hochzählen Locate 2 , 1 Lcd _hour Waitms 200 End If If _hour > 23 Then 'Zählt bis Max, danach wieder ab 0 Cls _hour = 00 End If 'solange, bis Taster 1 gedrückt Loop Until Taster_menu = 0 Waitms 200 'Minute Cls Do Locate 1 , 1 Lcd "Minute einstellen:" Locate 2 , 1 Lcd _min If Taster_enter = 0 Then Incr _min Locate 2 , 1 Lcd _min Waitms 200 End If If _min > 59 Then Cls _min = 00 End If Loop Until Taster_menu = 0 Waitms 200 Cls 'Tag Cls Do Locate 1 , 1 Lcd "Tag einstellen:" Locate 2 , 1 Lcd _day If Taster_enter = 0 Then Incr _day Locate 2 , 1 Lcd _day Waitms 200 End If If _day > 31 Then Cls _day = 01 End If Loop Until Taster_menu = 0 Waitms 200 Cls 'Monat Cls Do Locate 1 , 1 Lcd "Monat einstellen:" Locate 2 , 1 Lcd _month If Taster_enter = 0 Then Incr _month Locate 2 , 1 Lcd _month Waitms 200 End If If _month > 12 Then Cls _month = 01 End If Loop Until Taster_menu = 0 Waitms 200 Cls 'Jahr Cls Do Locate 1 , 1 Lcd "Jahr einstellen:" Locate 2 , 1 Lcd _year If Taster_enter = 0 Then Incr _year Locate 2 , 1 Lcd _year Waitms 200 End If If _year > 10 Then Cls _year = 00 End If Loop Until Taster_menu = 0 Waitms 200 Cls _sec = 00 'Springe Nach Setzen Von Zeit / Datum Wieder Zurueck Return
PROBLEM: die uhr lässt sich zwar einstellen, aber die zeit wird nich hochgezählt. sozusagen - die uhr steht. hat jemand eine idee?
cap.







Zitieren
Lesezeichen