Hallo Zusammen,

ich bin gerade dabei einen RX-10 Servo mit Bascom anzusteuern, leider
habe ich da so meine Probleme. Hier im Forum war das ja schon mal ein Thema und ich habe auch ein paar Sachen versucht. Am Anfang ist es halt schwer Fehler einzugrenzen, könnte ja Hard.- oder Software sein. Ich poste einfach mal den Code den ich versucht habe, vielleicht sieht ja einer einen Fehler. Danke schon mal im voraus!!
Ich hoffe das es mit der 485 Schnittstelle so geht, habe da die ganze Zeit
einen anderen Motor dran gehabt, dort hat es geklappt, Senden und Empfangen.

Hier mal das Datenblatt des Servo´s

http://www.nodna.com/download/ROBOTIS/Dynamixel/RX-10(english).pdf

und hier der Code


Code:
$regfile = "m16def.dat"                                     'ATMEGA16
$crystal = 16000000                                         'Quarz: 16MHz

$baud = 1000000

Dim S As Byte

Wait 2

Ddrd = &B11100000                                           'Pin PD7,6,5 als Ausgang konfigurieren

Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0



Enable Interrupts                                           'Interrupts global


'FF FF 01 04 03 19 01 DD ' LED ein bei Adresse 1

'FF FF 01 04 03 19 00 DE ' LED aus bei Adresse 1

Do

Wait 1

Ucsra.txc = 1

Portd.7 = 0                                                 ' 485 Modul auf schreiben setzen

Waitms 1
S = &HFF
Print Chr(s);
S = &HFF
Print Chr(s);
S = &H01
Print Chr(s);
S = &H04
Print Chr(s);
S = &H03
Print Chr(s);
S = &H19
Print Chr(s);
S = &H01
Print Chr(s);
S = &HDD
Print Chr(s);

Portd.6 = 0                                                 ' Test-Led einschalten

Sprung:
If Ucsra.txc = 0 Then Goto Sprung                           ' warten bis Serieller Puffer leer ist
Portd.7 = 1                                                 ' 485 Modul auf lesen setzen

Wait 1

Ucsra.txc = 1

Portd.7 = 0                                                 ' 485 Modul auf schreiben setzen

Waitms 1
S = &HFF
Print Chr(s);
S = &HFF
Print Chr(s);
S = &H01
Print Chr(s);
S = &H04
Print Chr(s);
S = &H03
Print Chr(s);
S = &H19
Print Chr(s);
S = &H00
Print Chr(s);
S = &HDE
Print Chr(s);

Portd.6 = 1                                                 ' Test-Led ausschalten

Sprung1:
If Ucsra.txc = 0 Then Goto Sprung1                          ' warten bis Serieller Puffer leer ist
Portd.7 = 1                                                 ' 485 Modul auf lesen setzen


Loop

End
Danke Gruß Frank