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:
Ich steh mal wieder völlig ohne ansatz daCode:'################################################### '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
mfg
jagdfalke







Zitieren

Lesezeichen