dann setz die Beep-Befehlsfolge vor die Do-Loop-Schleife, dann hat sich das schonmal.
Goto Main2 und Main2 kannst du dir im übrigen sparen, das brauchst du nicht. (da springst du ja eh über nix drüber)
Hast du nen externen Pullup-Widerstand am Taster? Und geht der Taster nach GND?
vlt geht das:EDIT: gnaah, ich überseh immer wieder kleine fehler im prog.Code:$regfile = "m16def.dat" $crystal = 16000000 Config Porta.0 = Output Config Portd.7 = Output Config Pina.2 = Input Porta.2 = 1 ' (edit:) !!!Weil du da keine externen pullups hast!!!!! Dim Zeit As Byte Dim Main1 As Long Dim Main3 As Long Portd.7 = 1 Waitms 300 Portd.7 = 0 Waitms 300 Portd.7 = 1 Waitms 300 Portd.7 = 0 Main1: Zeit = 0 Porta.0 = 1 If Pina.2 = 0 Then Porta.0 = 0 Goto Main3 Else Goto Main1 End If Main3: While Pina.2=0 'es muss ja solange sein, bis der Taster wieder geschlossen wird Zeit = Zeit + 1 If Zeit = 10 Then Porta.0 = 1 Portd.7 = 1 End If If Zeit = 15 Then Porta.0 = 1 Portd.7 = 1 Zeit = 0 ' so würde die lampe nach 30 Sekunden und nach 45 sekunden für je 3 sec angehen, der Beeper auch End If Waitms 3000 'weil sonst deine "Zeit" nicht wartet zwischen dem Zählen Porta.0 = 0 'wenn die eh aus sind, dann juckts keinen, wenn nicht, dann passts Portd.7 = 0 'weil dann eine der If-Schleifen dran war, und du das nicht in der If-Schleife brauchst. Wend Goto Main1








Zitieren
Lesezeichen