Hi,
ich will einen Schrittmotor ansteuern. Nach dem Bascombeispiel, das mit dem rnbfra mitgeliefert wurde, wird da I2C benutzt. Ich weiß dummerweise nicht wie ich das was ich da sehe in C umsetzen kann:
Code:
'###################################################
'Testprogramm 5
'fr
'RoboterNetz Standard-Roboter Board RBNFRA 1.2
'
'Aufgabe:
'Testen der Schrittmotortreiber
'Dreht erst linken Schrittmotor in beide Richtungen
'und dann rechten Schrittmotor in beide richtungen
'
'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de
'###################################################

Declare Sub Ledein
Declare Sub Ledaus


Const Writepowerport_adr = &H72                             'I2C Adr PCF 2
Const Readpowerport_adr = &H73                              'I2C Adr PCF 2

Dim I2cdaten As Byte                                        'Datenbyte aus PCF8574


Dim I As Word


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


'******** Diese 4 Befehle sind nur ab RNBFRA Version 1.2 (nicht in V 1.1)
' notwendig und bzw. m�lich (erweiterte Energiesparfunktion und LEDs)
' Bei Board 1.1 bitte auskommentieren oder l�chen
 I2cstart
 I2cwbyte &H74                                              'Schreibbefehl an PCF3 schicken
     ' Leds ein ,Motorendstufen ein, Port-Peripherie ein, RBN-Bus Sleep Modus aus (also Peripherie aktiv)
 I2cwbyte &B00000010                                        'Datenbyte an PCF3
 I2cstop
'*********




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

Ledaus
Portd.6 = 0                                                 'Schrittmotoren erst mal ausschalten

Wait 2

Ledein
Portd.6 = 1                                                 'Beide Schrittmotoren einschalten

'Linker Schrittmotor
Portc.5 = 0                                                 'Richtung
Portc.3 = 0
I = 400                                                     'Anzahl der Schritte die Motor bewegt werden soll
Do
   Ledaus
   Portc.3 = 0
   Waitms 5
   Portc.3 = 1
   Ledein
   Waitms 5
   I = I - 1
Loop Until I < 1

Portc.5 = 1                                                 'Andere Richtung
I = 400                                                     'Anzahl der Schritte die Motor bewegt werden soll
Do
   Ledaus
   Portc.3 = 0
   Waitms 5
   Portc.3 = 1
   Ledein
   Waitms 5
   I = I - 1
Loop Until I < 1

Wait 2

'Rechter Schrittmotor
Portc.4 = 0                                                 'Richtung
I = 400                                                     'Anzahl der Schritte die Motor bewegt werden soll
Do
   Ledaus
   Portc.2 = 0
   Waitms 5
   Portc.2 = 1
   Ledein
   Waitms 5
   I = I - 1
Loop Until I < 1

Portc.4 = 1                                                 'Andere Richtung
I = 400                                                     'Anzahl der Schritte die Motor bewegt werden soll
Do
   Ledaus
   Portc.2 = 0
   Waitms 5
   Portc.2 = 1
   Ledein
   Waitms 5
   I = I - 1
Loop Until I < 1



Portd.6 = 0                                                 ' Schrittmotoren erst mal ausschalten
Ledaus

End




Sub Ledein()
   I2cstart
   I2cwbyte Writepowerport_adr                              'Schreibbefehl an PCF schicken
   I2cwbyte 15                                              'Datenbyte an PCF
   I2cstop
End Sub

Sub Ledaus
   I2cstart
   I2cwbyte Writepowerport_adr                              'Schreibbefehl an PCF schicken
   I2cwbyte 0                                               'Datenbyte an PCF
   I2cstop
End Sub
Ich steh mal wieder völlig ohne ansatz da

mfg
jagdfalke