Hallo,
ich habe ein Problem mit dem Quellcode (siehe unten). Wenn ich den Servo, der in dem Code konfiguriert ist rausnehme, also Config Servo entferne und die Servo(1) = Anweisungen rausnehme funktioniert der Code einwandfrei !
Der Timer läuft mit der gewünschten Frequenz und auch die Wait-Befehle funktionieren richtig.
Wenn ich nun den Servo dazu nehme, dann funktioniert auch der Timer und alles, aber die Wait-Befehle brauchen nicht gerade unwesentlich länger. Bestimmt 4 bis 5mal so lang.

Woran liegt das ?


Code:
$regfile = "M16def.dat"
$crystal = 2000000
$baud = 9600


Config Portb = Output
Portb.0 = 1
Config Pina.5 = Output

Config Servos = 1 , Servo1 = Porta.5 , Reload = 10


Dim Sservorichtung As Byte : Sservorichtung = 2
Dim Sensorservo As Byte : Sensorservo = 25
Servo(1) = Sensorservo

Config Timer1 = Timer , Prescale = 64
Enable Timer1
On Timer1 Sensor_abfrage
Enable Interrupts
Timer1 = 34285


Wait 5

   Print "aM-1" : Waitms 10
   Print "c1HF"
   Print "aM-4" : Waitms 10
   Print "c3HF" : Waitms 425
 
Do

   Print "aM-1" : Waitms 10
   Print "c2RF"
   Print "aM-3" : Waitms 10

Loop


Sensor_abfrage:
   Timer1 = 34285

   If Sensorservo > 58 Then Sservorichtung = 1
   If Sensorservo < 26 Then Sservorichtung = 2

   If Sservorichtung = 1 Then Sensorservo = Sensorservo - 5
   If Sservorichtung = 2 Then Sensorservo = Sensorservo + 5

   Servo(1) = Sensorservo

Return