Moin,
ich sitz da jetzt schon einige Stunden drüber, und komm nicht drauf wie ich das am besten lösen kann. Ich möchte eine Zeitschaltung für meinen Lötkolben bauen. Dafür soll wenn ein Taster gedrückt wird der Lötkolben angehen. Wenn eine Zeit von 29.30min überschritten ist soll ein Alarm losgehn. Dann, 30 sek später, soll der Lötkolben samt Alarm abgeschaltet werden.
doch der "Countdown" soll jederzeit durch druck auf den Taster wieder auf Null gestellt werden. (auch während des Alarmes)

Aber mein Programm funktioniert nicht so wie ich mir das vorstelle, könnt ihr mir villeicht sagen wo mein Fehler liegt?

und ob es überhaupt möglich ist aus einem Unterprogramm zum Hauptprogramm-anfang zu springen?

Mfg Hübi

Code:
 
'--------------------------------------------------------------
$regfile = "attiny2313.dat"                                 ' ATtinny 2313
$crystal = 1000000                                          'Quarz: 1,0 MHz


'******** Deklarationen ********

'******** Initialisierung ********                                                 '
   Enable Int0
   Enable Interrupts
   On Int0 Taste0int

   Ddrb = &B11111111                                        ' port B als Ausgang
   Ddrd = &B0100000                                         ' pin D2 asl eingang
   Portd.2 = 1                                              ' interne pullup widerstände aktivieren
'******** Hauptprogramm ********

 Do
     Start:
     If Pind.2 = 0 Then                                     'Wenn Taster Pind.2 gedrückt, dann
          Portb = &B10000000                                'Lötkolben an
       Wait 1770                                            ' warte 29.30 min
          Portb = &B11000000                                ' Alarm wird zugeschaltet (spätestes jetzt könnte man resetten)
       Wait 30                                              ' warte 30 Sekunden
          Portb = &B00000000                                ' alles wird ausgeschaltet

     End If
Loop
'******** Unterprogramme ********
 Taste0int:
      Sound Portd.0 , 1000 , 82                             'wenn Taster Pind.2 gedrückt, dann piept es
      Goto Start                                            ' Springe zu start und fange von vorn an


End