Ich schreib es dir gerne dazu ich sitz schon lange da ich hab das vom RN umgeschrieben und wie folgt sieht es aus ich hoffe mittlerweile das es jemals funktioniert der Signal Ton zum schluss ist hörbar aber es überträgt sich nicht zum Motor Steuerboard leider gab es genau für den Port kein Test Programm das man hätte umschreiben können.

zieh es am besten in den Compiler wegen den Bemerkungen die dabi stehen

Declare Function am Anfang mach ich weck!

Code:
Declare Function Tastenabfrage() As Byte

$regfile = "m128def.dat"
$framesize = 32
$swstack = 32
$hwstack = 64

$crystal = 16000000                                         'Quarzfrequenz
$baud = 9600
Config Scl = Portd.0                                        'Ports fuer IIC-Bus
Config Sda = Portd.1


Config Adc = Single , Prescaler = Auto                      'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input                                       'Für Tastenabfrage
Porta.7 = 1                                                 'Pullup Widerstand ein
Dim Taste As Byte
Dim Ton As Integer

I2cinit
Start Adc
Sound Portg.2 , 400 , 450                                   'BEEP
Sound Portg.2 , 400 , 250                                   'BEEP
Sound Portg.2 , 400 , 450                                   'BEEP
Print
Print "**** RN-Control  V1.4 *****"
Print "Demoprogramm um Zusatzboard RN-Schrittmotor zu testen/demonstrieren"
Print
'  -------------- Ende 128 Funk übliche _____________________



'Befehle im Schrittmotorbetrieb
'Ein RN-Schrittmotor Befehl besteht immer aus 7 Bytes, auch wenn einige Befehle
'weniger Parameter benötigen. Wenn weniger Bytes erforderlich sind, werden die unnötigen
'Bytes mit beliebigen Wert gefüllt und ignoriert. .Die konstante Zahl erleichtert und
'beschleunigt die Interpretation und Verarbeitung!



Const Befehl_ausschalten = 51
Const Befehl_drehrichtung = 52
Const Befehl_geschwindigkeit = 53
Const Befehl_endlosdrehung = 54
Const Befehl_schrittzahlabrufen = 102
Const Befehl_versionstatus = 255

Const Motor_1 = 1
Const Motor_2 = 2


Const I2crnmotorslaveadr = &H58
Const I2crnmotorsreadlaveadr = &H59


Dim I2cdaten(7) As Byte
Dim Lowbyte As Byte
Dim Highbyte As Byte
Dim Richtung As Bit


Dim Schritte As Long
Dim Temp As Byte
Dim Ltemp As Long
Dim Umdrehungen As Single
Dim Fahrstrecke As Word

Dim Geschwindigkeit As Byte




Richtung = 0
Geschwindigkeit = 100


Do

Wait 2
            I2cdaten(1) = Befehl_endlosdrehung
            I2cdaten(2) = Motor_1
            I2csend I2crnmotorslaveadr , I2cdaten(1) , 7

         Wait 2
            Toggle Richtung
            I2cdaten(1) = Befehl_drehrichtung
            I2cdaten(2) = Motor_1
            I2cdaten(3) = Richtung
            I2csend I2crnmotorslaveadr , I2cdaten(1) , 7



         Wait 2

            If Geschwindigkeit > 40 Then
              Geschwindigkeit = Geschwindigkeit - 20
            Else
              Geschwindigkeit = Geschwindigkeit - 1
            End If
            Print "Geschwindigkeitsstufe: " ; Geschwindigkeit
            I2cdaten(1) = Befehl_geschwindigkeit
            I2cdaten(2) = Motor_1
            I2cdaten(3) = Geschwindigkeit
            I2cdaten(4) = 0
            I2csend I2crnmotorslaveadr , I2cdaten(1) , 7



         Wait 2

             I2cdaten(1) = Befehl_schrittzahlabrufen
             I2cdaten(2) = Motor_1
             I2csend I2crnmotorslaveadr , I2cdaten(1) , 7


             I2cstart
             I2cwbyte I2crnmotorsreadlaveadr
             I2crbyte Temp , Ack
             Schritte = Temp
             I2crbyte Temp , Ack
             Ltemp = Temp * 256
             Schritte = Schritte + Ltemp
             I2crbyte Temp , Ack
             Ltemp = Temp * 65536
             Schritte = Schritte + Ltemp
             I2crbyte Temp , Nack
             Ltemp = Temp * 16777216
             Schritte = Schritte + Ltemp
             I2cstop
             Print "Schrittanzahl:" ; Schritte
             Umdrehungen = Schritte / 200
             Print "Umdrehungen: " ; Umdrehungen
             Fahrstrecke = Umdrehungen * 31.4
             Print "Der Roboter ist " ; Fahrstrecke ; " cm gefahren "



          Wait 2
            I2cdaten(1) = Befehl_ausschalten
            I2cdaten(2) = Motor_1
            I2csend I2crnmotorslaveadr , I2cdaten(1) , 7


      Wait 2

      Sound Portg.2 , 1000 , 1000                           'BEEP


   Waitms 100
Loop

End