Hallo Leute,
ein dankeschön für Eure Hilfe.
Hier mal einen ersten Vorschlag

Code:
'###################################################
'Schrittmotorsteuerung mit Taster
'für 2 Schrittmotoren
'RoboterNetz Standard-Roboter Board RBNFRA 1.2
'
'Autor: Tomcat
'###################################################

Declare Sub Nachfahren1
Declare Sub Nachfahren2
Declare Sub Nachfahren3
Declare Sub Nachfahren4
Declare Sub Motorrechtsl
Declare Sub Motorrechtsr
Declare Sub Motorlinksl
Declare Sub Motorlinksr
Declare Sub Aus
Declare Sub Hochschneller
Declare Sub Hochlangsam
Declare Sub Linksschneller
Declare Sub Linkslangsam
Declare Sub Rechtsschneller
Declare Sub Rechtslangsam
Declare Sub Runterschneller
Declare Sub Runterlangsam

   On Timer0 Ontimer0
   Config Timer0 = Timer , Prescale = 256

   On Timer2 Ontimer2
   Config Timer2 = Timer , Prescale = 256

Const Writepowerport_adr = &H72                             'I2C Adr PCF 2
Const Writeeingabeport_adr = &H7E                           'I2C Adr PCF 2
Const Readeingabeport_adr = &H7F                            'I2C Adr PCF 2
Const Energieport_adr = &H74

Dim I2cdaten As Byte                                        'Datenbyte aus PCF8574


Dim I As Byte
Dim A As Word

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

Portd.6 = 0                                                 'Schrittmotoren erst mal ausschalten
I2cinit

Gosub Energieein

Config Pind.6 = Output                                      'Schrittmotoren Ein/Aus
Config Pinc.5 = Output                                      'Schrittmotor Links Richtung
Config Pinc.3 = Output                                      'Schrittmotor Links Step

Config Pinc.4 = Output                                      'Schrittmotor Rechts Richtung
Config Pinc.2 = Output                                      'Schrittmotor Rechts Step

Dim X As Word
X = 1
Dim Y As Word
Y = 1
Dim Verteilung As Byte

Verteilung = 100                                            'Anfangseinstellung beide Motoren mit 50%

Portd.6 = 1                                                 'Beide Schrittmotoren einschalten


I = 0
I2cdaten = 1


I2cstart
   I2cwbyte Writepowerport_adr                              'Schreibbefehl an PCF schicken
   I2cwbyte 0                                               'Datenbyte an PCF
   I2cstop

Do
   I2cstart
   I2cwbyte Readeingabeport_adr                             'Lesebefehl an PCF schicken
   I2crbyte I2cdaten , Nack                                 'Datenbyte von PCF lesen
   I2cstop
   Waitms 50
   If I2cdaten = 127 Then Aus                               'rot
   If I2cdaten = 190 Then Nachfahren1                       'grün
   If I2cdaten = 187 Then Nachfahren2                       'grün
   If I2cdaten = 183 Then Nachfahren3                       'grün
   If I2cdaten = 189 Then Nachfahren4                       'grün
   If I2cdaten = 254 Then Motorrechtsl                      'blau
   If I2cdaten = 247 Then Motorrechtsr                      'grau
   If I2cdaten = 251 Then Motorlinksl                       'orange
   If I2cdaten = 253 Then Motorlinksr                       'braun
   If I2cdaten = 219 Then Hochschneller                     'grün-weis
   If I2cdaten = 235 Then Hochlangsam                       'weis
   If I2cdaten = 222 Then Linksschneller
   If I2cdaten = 238 Then Linkslangsam
   If I2cdaten = 215 Then Rechtsschneller
   If I2cdaten = 231 Then Rechtslangsam
   If I2cdaten = 221 Then Runterschneller
   If I2cdaten = 237 Then Runterlangsam


   Incr I
Loop
Sub Motorrechtsl                                            'rechter Motor
   Portd.6 = 0
   Waitms 300
   Portd.6 = 1
   Portc.4 = 1
   Gosub Energieein
   'Print "Motor rechts lauf links"
   Gosub Motortimer0
End Sub

Sub Motorrechtsr                                            'rechter Motor
   Portd.6 = 0
   Waitms 300
   Portd.6 = 1
   Portc.4 = 0
   Gosub Energieein
   'Print "Motor rechts lauf rechts"
   Gosub Motortimer0
End Sub

Sub Motorlinksl                                             'rechter Motor
   Portd.6 = 0
   Waitms 300
   Portd.6 = 1
   Portc.5 = 0
   Gosub Energieein
   'Print "Motor links lauf links"
   Gosub Motortimer2
End Sub

Sub Motorlinksr                                             'rechter Motor
   Portd.6 = 0
   Waitms 300
   Portd.6 = 1
   Portc.5 = 1
   Gosub Energieein
   'Print "Motor links lauf rechts"
   Gosub Motortimer2
End Sub


Sub Aus()
   'Print "aus"
   Portd.6 = 0
   I2cstart
   I2cwbyte Energieport_adr                                 'Schreibbefehl an PCF3 schicken
   I2cwbyte &B11100101                                      'Datenbyte an PCF3
   Disable Timer2
   Disable Timer0
   I2cstop
   X = 50
   Y = 50
End Sub






Sub Nachfahren1()
   X = 1000
   Y = 1000
   Gosub Motorgoto
End Sub

Sub Nachfahren2()
   X = 1500
   Y = 1500
   Gosub Motorgoto
End Sub

Sub Nachfahren3()
   X = 50
   Y = 50
   Gosub Motorgoto
End Sub

Sub Nachfahren4()
   X = 10
   Y = 10
   Gosub Motorgoto
End Sub

Sub Hochschneller
   Y = Y + 1
   'Print "schneller"
End Sub

Sub Hochlangsam
   Y = Y - 1
   'Print "langsam"
End Sub

Sub Linksschneller
   X = X + 1
   'Print "schneller"
End Sub

Sub Linkslangsam
   X = X - 1
   'Print "langsam"
End Sub

Sub Rechtsschneller
   X = X + 1
   'Print "schneller"
End Sub

Sub Rechtslangsam
   X = X - 1
   'Print "langsam"
End Sub

Sub Runterschneller
    Y = Y + 1
    'Print "schneller"
End Sub


Sub Runterlangsam
    Y = Y - 1
   'Print "langsam"
End Sub



End



Ontimer0:
   Timer0 = X
   Toggle Portc.2
Return

Ontimer2:
   Timer2 = Y
   Toggle Portc.3
Return


Motorgoto:

   Print "goto"
   Portd.6 = 0
   Waitms 300
   Portd.6 = 1
   Portc.4 = 0
   Gosub Energieein
   Enable Timer0
   Enable Timer2
   Enable Interrupts

Return

Motortimer0:
   Enable Timer0
   Enable Interrupts

Return

Motortimer2:
   Enable Timer2
   Enable Interrupts

Return


Energieein:
   I2cstart
   I2cwbyte Energieport_adr                                 'Schreibbefehl an PCF3 schicken
   I2cwbyte &B00000010                                      'Datenbyte an PCF3
   I2cstop

Return

mfg
Tomcat