-
        

Ergebnis 1 bis 3 von 3

Thema: Brauche Hilfe mit I2C

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.02.2005
    Beiträge
    385

    Brauche Hilfe mit I2C

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    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

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.10.2005
    Ort
    Mönchengladbach
    Alter
    47
    Beiträge
    114
    Sieh dir mal bei Atmel die Application Notes 311 und 315 an. Da sind tolle Beispiele für die Verwendung von I²C (TWI), wenn bereit ist, sich damit auseinanderzusetzen. Danach versteht man auch die Beschreibung im Datasheet zum Prozessor

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    es gibt da die bekannte I2C Bibliothek von Peter Fleury.
    einfach mal danach suchen, wird hier im Forum auch öfter erwähnt.
    oder gleich http://jump.to/fleury

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •