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:
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
thx an andree-hb.

PROBLEM: die uhr lässt sich zwar einstellen, aber die zeit wird nich hochgezählt. sozusagen - die uhr steht. hat jemand eine idee?

cap.