Sehe ich das richtig das du den Timer wert für das Servo überschreibst???
Kann mich da ein Bascom Profi bestätigen??Code:Servoirq: 'Interrupt wird ausgelöst soweit OK If Portd.6 = 0 Then 'Port ist Low OK Timer1 = Servopwm 'Timervorwahl laden OK Portd.6 = 1 'Port High Setzen auch OK In der Ersten Interrupt Runde wird nix weiter gemacht, Alles was folgt wird übersprungen weil die Bedingungen noch nicht verfüllt sind. Timerinterrupt läuft das erste mal über und hier gehts dann weiter. Else 'Else bedingung wird erfüllt Portd.6 = 0 'Servo Port wird auf Low gezogen Incr Servo_nr_by 'Zähler Variable wird hochgezählt (ist jetzt 1) End If End If If Servo_nr_by = 1 Then 'Zähler Variable ist jetzt 1 und der Zweite Servoport wird auf High-Pegel gezogen. If Portb.2 = 0 Then Timer1 = Servo_roll_pwm ' Timer1 wird mit der Vorwahl für Portb.2 geladen. Portb.2 = 1 'Timer läuft wieder über, Interrupt wird ausgelöst. Servoirq: If Portd.6 = 0 Then 'Port ist wieder 0 also Timer1 = Servopwm 'Timer laden Portd.6 = 1 'port auf 1 Setzen Else 'Else wird nicht erfüllt also überspringen Portd.6 = 0 Incr Servo_nr_by End If End If 'Wofür ist eigendlich das zweite Endif?? If Servo_nr_by = 1 Then 'hier gehts dann weiter If Portb.2 = 0 Then 'Port ist noch 1 also überspringen bis Else Timer1 = Servo_roll_pwm Portb.2 = 1 Else Portb.2 = 0 'Port wird auf 0 gesetzt Incr Servo_nr_by 'Servozähler hochsetzen ist jetzt 2 End If End If If Servo_nr_by = 2 Then 'Servozähler passt also weiter machen If Portb.3 = 0 Then ' Port ist 0 also weiter Timer1 = Servo_nick_pwm 'Da ist der Bock! Timer 1 wird überschrieben!! Wurde vorher mit Timerwert für Steuerservo gefüllt. Portb.3 = 1 Else Portb.3 = 0 Incr Servo_nr_by End If End If
Mfg
Matthias







Zitieren


Lesezeichen