Charly_cs
08.10.2005, 16:28
Hallo!
Habe folgendes Problem. Möchte mit dem Terminalprogramm von Bascom 2 Servos ansteuern. Z.b. sende ich für den rechten Servo "r122" bzw. für den linken "l233" und empfange ihn im Atmel als String. Der Buchstabe steht für rechts oder links und die Zahl für die jeweilige Servoposition. Der String wird auseinander genommen und in einem if-then-Algorithmus die Servoposition zum jeweiligen Servo übermittelt. Ein Programm ist auch schon geschrieben, nur funktioniert es nicht. Die Servos zuckeln ständig sobald ich nur eine Taste drücke. Kann mir bitte jemand helfen, den Fehler im Code zu finden?
Hier mein Code:
$regfile "m32def.dat"
$crystal = 16000000
$baud = 9600
Config Pinc.0 = Output
Config Pinc.1 = Output
Dim A As Byte
Dim B As String * 4
Dim C As String * 1
Dim D As String * 3
On Urxc Onrxd
Enable Urxc
Enable Interrupts
Config Servos = 2 , Servo1 = Portc.0 , Servo2 = Portc.2 , Reload = 8
A = 128
Servo(1) = A
Servo(2) = A
' ---------------------------------------------
Do
If Len(b) = 4 Then
C = Left(b , 1)
D = Right(b , 3)
If C = "L" Then Servo(1) = D ' Servo1 = links
If C = "R" Then Servo(2) = D ' Servo2 = rechts
Print B
B = ""
End If
Loop
End
' ---------------------------------------------
Onrxd:
B = B + Chr(udr)
Return
Gruß
Charly
Habe folgendes Problem. Möchte mit dem Terminalprogramm von Bascom 2 Servos ansteuern. Z.b. sende ich für den rechten Servo "r122" bzw. für den linken "l233" und empfange ihn im Atmel als String. Der Buchstabe steht für rechts oder links und die Zahl für die jeweilige Servoposition. Der String wird auseinander genommen und in einem if-then-Algorithmus die Servoposition zum jeweiligen Servo übermittelt. Ein Programm ist auch schon geschrieben, nur funktioniert es nicht. Die Servos zuckeln ständig sobald ich nur eine Taste drücke. Kann mir bitte jemand helfen, den Fehler im Code zu finden?
Hier mein Code:
$regfile "m32def.dat"
$crystal = 16000000
$baud = 9600
Config Pinc.0 = Output
Config Pinc.1 = Output
Dim A As Byte
Dim B As String * 4
Dim C As String * 1
Dim D As String * 3
On Urxc Onrxd
Enable Urxc
Enable Interrupts
Config Servos = 2 , Servo1 = Portc.0 , Servo2 = Portc.2 , Reload = 8
A = 128
Servo(1) = A
Servo(2) = A
' ---------------------------------------------
Do
If Len(b) = 4 Then
C = Left(b , 1)
D = Right(b , 3)
If C = "L" Then Servo(1) = D ' Servo1 = links
If C = "R" Then Servo(2) = D ' Servo2 = rechts
Print B
B = ""
End If
Loop
End
' ---------------------------------------------
Onrxd:
B = B + Chr(udr)
Return
Gruß
Charly