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
Lesezeichen