Hi,
wie genau soll die Zeit den sein?

Hier mal ein Beispiel

Code:
$regfile = "M168Pdef.dat"                                   'es handelt sich um einen ATmega168P
$crystal = 3686400                                          'der eingebauter RC-Oszillator läuft mit 3,6864 Mhz
$hwstack = 100                                              'im Speicher werden für den Hardware-Stack 100 Byte reserviert
$swstack = 100                                              'im Speicher werden für den Software-Stack 100 Byte reserviert
$framesize = 100                                            'im Speicher werden für den Frame 100 Byte reserviert
$baud = 19200


S1 Alias Pind.2                                             'Schalter 1 an Port D2 (Taster)
Config S1 = Input                                           ' als eingang festlegen
Pind.2 = 1                                                  'Pullup einschalten


'Timer einstellen
'Frequenz-Teiler 1,8,64,256 or 1024
Config Timer1 = Timer , Prescale = 1024
'3686400 / 1024 = 3600 impulse/sek


'Variable festlegen
Dim Sekunde As Byte , Minute As Byte
Sekunde = 0
Minute = 0


'Unterprogramme Declarieren
Declare Sub Prog1                                           'Unterprog. 1
Declare Sub Prog2                                           'Unterprog. 2


Do

   If S1 = 0 Then                                           'Wenn S1 gedrückt
      Call Prog1                                            'und Unterprog. 1 Starten
   End If


   If Timer1 >= 3600 Then
      Incr Sekunde                                          'Sekunden werden gezählt bis 60
      Print "Sekunden: " ; Sekunde
      Timer1 = 0
   End If


   If Sekunde >= 60 Then
      Incr Minute
      Print "Minuten: " ; Minute                            'Minuten Zähler, Sekunden auf 0 setzen
      Sekunde = 0
   End If


   If Minute >= 60 Then                                     'Bei 60 Minuten, Unterprog 2 starten und Minuten auf = setzen
      Minute = 0
      Call Prog2
   End If

Loop



End



Sub Prog1                                                   'Unterprog. 1

   Bitwait S1 , Set                                         'warten bis Taster S1 losgelassen wird

   Print
   Print "Taster S1 wurde gedrueckt"
   Print

   Sekunde = 0                                              'Zeit auf 0 setzen
   Minute = 0

End Sub



Sub Prog2                                                   'Unterprog. 2

   Print
   Print "Prog2 gestartet"
   Print

   Sekunde = 0                                              'Zeit auf 0 setzen
   Minute = 0

End Sub
Timer 1 läuft und zählt sekunden hoch, diese zählen minuten hoch bis Taster 1 gedrückt wird oder 60 Minuten gezählt sind.

Bei Taster startet Prog1 und Zeit wird wieder auf 0 gestellt
Bei 60 min startet Prog2 und Zeit wird wieder auf 0 gestellt

ACHTUNG: Quarz richtig einstellen!!! und Timer anpassen falls andere Quarz verwendet wird