Hallo,
ich habe folgendes Programm:
Mein Problem liegt darin, das in den beiden Interrupt-Routinen beide Motoren 0 sein sollen und gelichzeitig der Servo eine Position abfahren soll.Code:$regfile = "M48def.dat" $crystal = 8000000 $hwstack = 32 $swstack = 10 $framesize = 40 Dim Zeitpunkt As Word Dim A As Byte Zeitpunkt = 0 'Servo Config Servos = 1 , Servo1 = Portb.1 , Reload = 10 Config Portb.1 = Output 'Pumpe 1 an PD7 Pumpe1 Alias Portd.5 Config Pumpe1 = Output 'Motor Stauchen an PD6 Stauchen Alias Portd.6 Config Stauchen = Output 'Motor Streckenan PD7 Streckenalias Portd.7 Config Strecken = Output 'Pumpe 2 an PB0 Pumpe2 Alias Portb.0 Config Pumpe2 = Output 'TASTER 1 an PD2 Taster1 Alias Pind.2 Config Pind.2 = Input Portd.2 = 1 'Taster 2 an PD3 Taster2 Alias Pind.3 Config Pind.3 = Input Portd.3 = 1 On Int0 Zweiter On Int1 Erster Config Int0 = Falling Config Int1 = Falling Enable Int0 Enable Int1 Enable Interrupts Servo(1) = 60 Pumpe1 = 1 : Pumpe2 = 0 Do Loop Zweiter: Strecken = 0 : Stauchen = 0 : Servo(1) = 40 Pumpe1 = 1 : Pumpe2 = 1 Waitms 1000 Pumpe1 = 0 : Pumpe2 = 1 Waitms 2000 Strecken = 1 : Stauchen = 0 Return Erster: Strecken = 0 : Stauchen = 0 : Servo(1) = 50 Pumpe1 = 1 : Pumpe2 = 1 Waitms 1000 Pumpe1 = 1 : Pumpe2 = 0 Waitms 2000 Strecken = 0 : Stauchen = 1 Return Return
Doch dies tut das Programm leider nicht.
Eigentlich müsste passieren:
Stecken + Stauchen = 0 -> Korrekt
Servo = Position anfahren -> macht er aber leider erst zum Schluss
pumpen mit Pausen
Strecken bzw Stauchen
Der Servo bewegt sich erst wieder wenn, Strecken und Stauchen = 1 bzw. 0 ist.
Woran dies liegt kann ich mir leider nicht erklären hoffentlich habt ihr eine Lösung zu meinem Problem
Über Antworten würde ich mich sehr freuen
Gruß
Martin








Zitieren

Lesezeichen