- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 47

Thema: Frage zum Pulsein Befehl

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Ja ich habe sie jetzt mal so ähnlich getrennt.Ich habe bei Case Rckanal nur die Sachen für PWM 1a gelassen und bei Lala nur PWM 1b.
    Jetzt funktionieren beide Kanäle doch wenn ich gleichzeitig betreibe dreht der eine Motor auf einmal anders herum . Warum ????
    Wie meinst du das mischen sonst ??Hättest du einen Code ??

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Poste mal den jetzigen Code hier per codeeinfügefunktion bei erweiterte Antwort - dann braucht man sich den nicht runterladen.

    Leider habe ich keine Code - habe auch nur den von der RN-Control...

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Hier :

    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 9600
    $hwstack = 32
    $swstack = 32
    $framesize = 32
    
    Config Portd.7 = Output
    Config Portd.7 = Output
    Config Pinc.6 = Output                                      'Linker Motor Kanal 1
    Config Pinc.7 = Output                                      'Linker Motor Kanal 2
    Config Pind.4 = Output                                      'Linker Motor PWM
    Config Pinb.0 = Output                                      'Rechter Motor Kanal 1
    Config Pinb.1 = Output
    Config Pind.5 = Output
                                          'Rechter Motor PWM
    Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up
    Pwm1a = 0
    Pwm1b = 0
    Tccr1b = Tccr1b Or &H02                                     'Prescaler = 8
    
    Dim Rckanal As Word
    Dim Lala As Word
    
    Sound Portd.7 , 400 , 450
    Sound Portd.7 , 400 , 250
    Sound Portd.7 , 400 , 450
    Wait 2
    
    Main:
    
      Waitms 10
      Pulsein Rckanal , Pind , 2 , 1                            'Messung Zeit zwischen 1 und 0 Pegel
      Waitms 10
      Pulsein Lala , Pind , 3 , 1                               'Messung Zeit zwischen 1 und 0 Pegel
      Waitms 10
    
      Select Case Rckanal
    
          Case 90 To 140
          Portc.6 = 1
          Portc.7 = 0
          Portd.4 = 1
    
          Pwm1a = 600
          Waitms 10
    
          Case 160 To 200
          Portc.6 = 1
          Portc.7 = 0
          Portd.4 = 1
    
          Pwm1a = 600
          Waitms 10
    
          Case Else
          Portc.6 = 1
          Portc.7 = 0
          Portd.4 = 1
    
          Pwm1a = 0
          Waitms 10
    
      End Select
    
      Select Case Lala
    
          Case 90 To 140
          Portb.0 = 1
          Portb.1 = 0
          Portd.5 = 1
    
          Pwm1b = 600
          Waitms 10
    
          Case 160 To 200
    
          Portb.0 = 1
          Portb.1 = 0
          Portd.5 = 1
    
          Pwm1b = 600
          Waitms 10
    
          Case Else
    
          Portb.0 = 0
          Portb.1 = 1
          Portd.5 = 1
          Pwm1b = 0
          Waitms 10
    
      End Select
    Goto Main

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Versuche mal jeweils im case else die Portd.4 + 5 = 0 zu setzen. PWM ist dann nicht nur 0, sondern ganz am Port aus.

    Wenn das klappt dann denke ich ist es das gleiche was ich mal hatte. Der Zähler vom PWM zählt irgendwie falschrum - glaube so kann man das sagen
    Bei 0 volle Pulle

    Hängt irgendwie zusammen mit:

    Compare A Pwm = Clear Up, Compare B Pwm = Clear Up

    ...aber so weit bin ich noch nicht.

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    wenn ich das so mache :
    Code:
    $regfile = "m32def.dat"
    $crystal = 16000000
    $baud = 9600
    $hwstack = 32
    $swstack = 32
    $framesize = 32
    
    Config Portd.7 = Output
    Config Portd.7 = Output
    Config Pinc.6 = Output                                      'Linker Motor Kanal 1
    Config Pinc.7 = Output                                      'Linker Motor Kanal 2
    Config Pind.4 = Output                                      'Linker Motor PWM
    Config Pinb.0 = Output                                      'Rechter Motor Kanal 1
    Config Pinb.1 = Output
    Config Pind.5 = Output
                                          'Rechter Motor PWM
    Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up
    Pwm1a = 0
    Pwm1b = 0
    Tccr1b = Tccr1b Or &H02                                     'Prescaler = 8
    
    Dim Rckanal As Word
    Dim Lala As Word
    
    Sound Portd.7 , 400 , 450
    Sound Portd.7 , 400 , 250
    Sound Portd.7 , 400 , 450
    Wait 2
    
    Main:
    
      Waitms 10
      Pulsein Rckanal , Pind , 2 , 1                            'Messung Zeit zwischen 1 und 0 Pegel
      Waitms 10
      Pulsein Lala , Pind , 3 , 1                               'Messung Zeit zwischen 1 und 0 Pegel
      Waitms 10
    
      Select Case Rckanal
    
          Case 90 To 140
          Portc.6 = 1
          Portc.7 = 0
          Portd.4 = 1
    
          Pwm1a = 600
          Waitms 10
    
          Case 160 To 200
          Portc.6 = 1
          Portc.7 = 0
          Portd.4 = 1
    
          Pwm1a = 600
          Waitms 10
    
          Case Else
          Portc.6 = 1
          Portc.7 = 0
          Portd.4 = 0
    
          Waitms 10
    
      End Select
    
      Select Case Lala
    
          Case 90 To 140
          Portb.0 = 1
          Portb.1 = 0
          Portd.5 = 1
    
          Pwm1b = 600
          Waitms 10
    
          Case 160 To 200
    
          Portb.0 = 1
          Portb.1 = 0
          Portd.5 = 1
    
          Pwm1b = 600
          Waitms 10
    
          Case Else
    
          Portb.0 = 0
          Portb.1 = 1
          Portd.5 = 0
    
          Waitms 10
    
      End Select
    Goto Main
    und dann einmal den Kanal 1 bewege ,dann läuft der Motor zwar an,aber ich kann ihn nicht mehr stoppen .Genau so läuft es mit Kanal 2 auch . Häää ??????

  6. #6
    RN-Premium User Fleißiges Mitglied
    Registriert seit
    19.05.2012
    Ort
    Sigmaringen
    Beiträge
    169
    Lass doch einfach mal die Werte von den 2 Kanälen über Print an die Konsole zurückgeben und schau dir
    an, was die für Werte annehmen... sowas hilft ungemein bei der Fehlersuche.

    Sowas kannst auch mit den anderen werten mal machen um die zu kontrollieren.

    Zitat Zitat von Der Einsteiger Beitrag anzeigen
    wenn ich das so mache :
    Code:
      Waitms 10
      Pulsein Rckanal , Pind , 2 , 1                            'Messung Zeit zwischen 1 und 0 Pegel
      Print Rckanal 
      Waitms 10
      Pulsein Lala , Pind , 3 , 1                               'Messung Zeit zwischen 1 und 0 Pegel
      Print Lala  
      Waitms 10
    und bei...
    Compare A Pwm = Clear Up
    müssen da nicht unterstriche zwischen die wörter ? meckert der nicht beim kompilieren ?

    D.7 ist doppelt configuriert ganz am Anfang.

    ... und die ausgänge der motoren...
    Case 90 To 140
    Portb.0 = 1
    Portb.1 = 0
    Portd.5 = 1


    Pwm1b = 600
    Waitms 10

    Case 160 To 200

    Portb.0 = 1
    Portb.1 = 0
    Portd.5 = 1


    Pwm1b = 600
    Waitms 10
    sind die absichtlich bei 2 Servostellungen identisch geschaltet ?

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    21.05.2012
    Beiträge
    511
    Also ,das Anzeigen von Werten funktioniert tadellos.Es kommen je nach dem immer Werte von 100 bis 200 raus.
    müssen da nicht unterstriche zwischen die wörter ? meckert der nicht beim kompilieren ?
    Was für Unterstriche ?? Funktionier bei mir ohne ,ohne Probleme .
    D.7 ist doppelt configuriert ganz am Anfang.
    stört doch nicht .
    ...sind die absichtlich bei 2 Servostellungen identisch geschaltet ?
    ist doch egal oder ??

Ähnliche Themen

  1. Frage zum Bascom "Sound"-Befehl
    Von DirkP im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 4
    Letzter Beitrag: 06.04.2012, 13:07
  2. Wert berechnen Pulsein-Befehl
    Von RAM im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 24.01.2011, 17:05
  3. Arbeiten mit dem PULSEIN-Befehl
    Von Powell im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 02.07.2007, 15:14
  4. Frage zum Befehl "readmagcard" bzw. abbruch des pr
    Von sephi23 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 29.06.2006, 08:20
  5. Frage zum Befehl outp!
    Von Decca im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 03.03.2005, 13:52

Berechtigungen

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

Labornetzteil AliExpress