-         

Ergebnis 1 bis 4 von 4

Thema: MD 25 Board Drehrichtung ändern

  1. #1

    MD 25 Board Drehrichtung ändern

    Anzeige

    Hallo zusammen,

    ich habe ein kleines Problem mit dem MD25 Board. Solange ich mit meinem Bascam Programm Dehzahlwerte zwischen 129 und 255 vorgebe funktioniert mein Programm einwanfrei. Sobald ich allerdings Drehzahlwerte in die andere Richtung vorgebe 0-127 übernimmt der Motor zwar einmal die Drehzahl allerdings hängt sich dann meine Bascom Programm auf. Verwende einen ATmega88 mit Hardware I2C.

    hier noch kurz der Quelltext, vielleich sieht ja jemand spontan wo das roblem liegt.

    $regfile = "m88def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 64
    $lib "i2c_twi.lbx" ' Für Hardware TWI

    $crystal = 8000000 'Quarzfrequenz
    $baud = 19200


    Config Scl = Portc.5 'Ports fuer IIC-Bus
    Config Sda = Portc.4
    Config Portb.6 = Output
    Config Twi = 400000 ' Init TWBR und TWSR
    Config I2cdelay = 10

    Tast1 Alias Pind.2
    Tast2 Alias Pind.3
    Tast3 Alias Pind.4
    Config Tast1 = Input
    Config Tast2 = Input
    Config Tast3 = Input
    Config Portb.6 = Output
    Config Portb.7 = Output
    Led1 Alias Portb.6
    Led2 Alias Portb.7
    Portd.2 = 1
    Portd.3 = 1
    Portd.4 = 1
    I2cinit
    Dim Wert As Byte


    Do

    If Tast1 = 0 Then
    I2cstart
    I2cwbyte &HB0
    I2cwbyte 16 'Leseregister festlegen
    I2cwbyte 32 'Leseregister festlegen

    I2cstart
    I2cwbyte &HB0
    I2cwbyte 15 'Leseregister festlegen
    I2cwbyte 0 'Leseregister festlegen


    I2cstop
    I2cstart
    I2cwbyte &HB0
    I2cwbyte 0 'Leseregister festlegen
    I2cwbyte 128 'Leseregister festlegen
    I2cstop



    End If

    If Tast2 = 0 Then

    I2cstart
    I2cwbyte &HB0
    I2cwbyte 0 'Leseregister festlegen
    I2cwbyte 255
    I2cstop


    End If


    If Tast3 = 0 Then

    I2cstart
    I2cwbyte &HB0
    I2cwbyte 0 'Leseregister festlegen
    I2cwbyte 0
    I2cstop
    Set Led1

    End If
    Loop
    End

    Vielen Dank schon mal im vorraus.

    MfG Ralph

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    251
    If Tast1 = 0 Then
    I2cstart
    I2cwbyte &HB0
    I2cwbyte 16 'Leseregister festlegen
    I2cwbyte 32 'Leseregister festlegen
    >>>hier fehlt meiner Meinung nach das "I2cstop"
    I2cstart
    I2cwbyte &HB0
    I2cwbyte 15 'Leseregister festlegen
    I2cwbyte 0 'Leseregister festlegen


    I2cstop
    I2cstart
    I2cwbyte &HB0
    I2cwbyte 0 'Leseregister festlegen
    I2cwbyte 128 'Leseregister festlegen
    I2cstop



    End If

  3. #3
    Danke für deine Antwort. Allerdings ist das nicht mein Problem. Der Stop befehl ist warscheinlich beim rumprobieren irgendwie rausgeflogen.
    Grundsätlich funktioniert das Programm ja. Nur wenn ich Werte zwischen 0 und 127 als Drehzahl vorgebe tretten Probleme auf.

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    251
    Config Twi = 400000 ' Init TWBR und TWSR
    Config I2cdelay = 10
    Versuch' mal nur:
    Config Twi = 100000
    mehr als 100Khz mag das Ding nicht.

Berechtigungen

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