moin erstmal

mein problem auf grund zu geringem wissensstand, trotz vieler std im forum zu diesen fragen.

ich habe RNControl plus sd21, daran 3 servos. technik funktioniert soweit (anschlüsse, stromversorgung usw.). ich habe folgendes abgeändertes sd21 testprogramm geflasht. ( von 2 auf 3 Servos verändert ).

--------------------------------------------------------------------------------------

Code:
$programmer = 12                                            '1=LPT stk200  13=MCS Bootloader   12=USBISP


Const Sd21_slaveid = &HC2

Declare Function Sd21_version() As Byte
Declare Sub Setzeservoposition(byval Servo As Byte , Byval Position As Word)
Declare Sub Setzeservospeed(byval Servo As Byte , Byval Speed As Byte)


$regfile = "m32def.dat"
$framesize = 42
$swstack = 42
$hwstack = 42

$crystal = 16000000                                         'Quarzfrequenz
$baud = 9600

Config Scl = Portc.0                                        'Ports fuer IIC-Bus
Config Sda = Portc.1



Dim I As Integer


   Wait 2                                                   'Warte 3 Sekunden
   I2cinit
   Print "SD21 Testprogramm "
   Print "SD21 Firmware Version:" ; Sd21_version()

   Setzeservospeed 1 , 5
   Setzeservospeed 2 , 5
   Setzeservospeed 3 , 5

Do
  For I = 1 To 3
    Setzeservoposition 1 , 1000
    Wait 2
    Setzeservoposition 1 , 2000
    Wait 2

  Next I

  For I = 1 To 3
    Setzeservoposition 2 , 1000
    Wait 2
    Setzeservoposition 2 , 2000
    Wait 2

  Next I

  For I = 1 To 3
    Setzeservoposition 3 , 1000
    Wait 2
    Setzeservoposition 3 , 2000
    Wait 2

  Next I



  For I = 1 To 3
    Setzeservoposition 1 , 1000
    Setzeservoposition 2 , 1000
    Setzeservoposition 3 , 1000
    Wait 2
    Setzeservoposition 1 , 2000
    Setzeservoposition 2 , 2000
    Setzeservoposition 3 , 2000
    Wait 2

  Next I


Loop

End



Function Sd21_version() As Byte
Local Firmware As Byte
Local I2cread As Byte

   I2cread = Sd21_slaveid + 1

   I2cstart
   I2cwbyte Sd21_slaveid
   I2cwbyte 64                                              'Leseregister festlegen
   I2cstop

   I2cstart
   I2cwbyte I2cread
   I2crbyte Firmware , Nack
   I2cstop

   Sd21_version = Firmware
End Function


'Die Position wird gewöhnlich von  1000 bis 2000 angegeben
'Manche Servos haben etwas größeren Drehbereich, mit etwas
'niedrigeren und höheren Werten kann man diesen auch nutzen
Sub Setzeservoposition(byval Servo As Byte , Byval Position As Word)
Local Register As Byte
Local Lowpos As Byte
Local Highpos As Byte


  Register = Servo - 1
  Register = Register * 3
  Register = Register + 1

  Lowpos = Low(position)
  Highpos = High(position)

 I2cstart
   I2cwbyte Sd21_slaveid
   I2cwbyte Register                                        'Register
   I2cwbyte Lowpos
   I2cwbyte Highpos
   I2cstop
End Sub


'Setze Geschwindigkeit der Drehbewegung   (1 ganz langsam 255=ganz schnell)
Sub Setzeservospeed(byval Servo As Byte , Byval Speed As Byte)
Local Register As Byte


  Register = Servo - 1
  Register = Register * 3

 I2cstart
   I2cwbyte Sd21_slaveid
   I2cwbyte Register                                        'Register
   I2cwbyte Speed
   I2cstop
End Sub

------------------------------------------------------------------------------
ich hatte vorher im programm für die 3 Servos jeweils eine 3. programmzeile ( Setzeservoposition 1 , 1500 ) für die position mit 1500 eingebunden, diese aber wieder gelöscht.
nun fahren die Servos mit dem jetzigen programm manchmal die angegebenen positionen an ( 1000 - 2000 ), aber teilweise nur bis position 1500 bis 1000,
also nur die hälfte, wie mit alter programmierung.

und das sd21 verarbeitet die wait anweisungen nicht richtig oder lässt sie ganz weg.

fragen:
1. : woher nimmt das sd21 nun den befehl für 1500er positionen, obwohl ich die dateien gelöscht und neu kompiliert habe?

2. : wo wird so etwas ausser in den kompilerten dateien sonst noch gespeichert? (denn die habe ich ja neu erstellt ).und wie werde ich diese anweisung/befehl wieder los.

sd21 scheint einen befehl zu verarbeiten der nicht im aktuellen programm steht.

3. : wie kann ich es einrichten das wenn nötig nur auf das aktuelle programm zugegriffen wird.

4. : und warum werden die wait anweisungen nicht beachtet?

ihr seht ich steh noch ganz am anfang.

danke schon mal im voraus.

michel