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







Zitieren
Lesezeichen