Hallo zusammen.
Ich bin gerade fleissig am Programmieren und habe unteranderem einen Notstop für meinen Robo miteingebaut (Schalter vorne ->int0). Ich benutze Bascom und in der Hilfe ist das alles ja wunderschön erklärt.
Nur eines bekomme ich nicht auf die Reihe:
Wenn der Interrupt auslöst, dann läuft mein Label dafür ab, wie es sollte, dann gehe ich mit return zurück und dann geht das Hauptprogramm weiter. Aber jetzt ist der Interrupt tot, es ist also egal, ob ich den Taster drück oder nicht. Ich habe schon probiert, die "on int0" an verschiedene Stellen zu schreiben, hat aber nichts genützt.
Hier ist mein Code, zuerst wird alles configuriert dann
Code:
Config Int0 = Low Level 'collision(notstop) an d.2
Config Int1 = Low Level 'collision(ir-warnung) an d.3
On Int0 Notstop Nosave
On Int1 Ausweichen Nosave
Start Adc
Enable Interrupts
Enable Int0
Enable Int1
dann kommt das programm und zum schluss
Code:
Notstop:
Compare1a = 0
Compare1b = 0 'Motoren Stop
For Z0 = 0 To 3 Step 1
Portd.5 = 1 'BEEP
Waitms 300
Portd.5 = 0
Waitms 400
Next
Print "------------------"
Print "ACHTUNG ! Kollision erfolgt! Bitte Hindernis enfernen !"
Print "------------------"
Wait 2
Haltep1:
C0 = Pind.3 'Abfrage des Kolli-Tasters
If C0 = 1 Then
Return
Else
Goto Haltep1
End If
Return
Es geht mir nur darum, wie ich die INT eingänge "wieder Scharfmachen" kann, der rest läuft wunderbar.
Ich wäre für eine kleine Hilfe sehr dankbar.
Schönen Sonntag noch
Basti
Lesezeichen