- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: rp6 fährt zu schnell mit dem code von bascom

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.07.2007
    Beiträge
    386

    rp6 fährt zu schnell mit dem code von bascom

    Anzeige

    Praxistest und DIY Projekte
    was ist an dem code falsch, die motoren rasen gleich los und fahren nicht so langsam an wie bei der routine von winavr-c , beim wert 70 haben die schon vollspeed. stimmt die config für den pwm-wert nicht bei bascom?

    der wert liegt bei Pwm1a = 70, Pwm1b = 70

    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 256
    mfg

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Hallo,

    ich kenne nun die ganzen Konstanten von Bascom nicht - daher weiss ich nun nicht genau wie Dein PWM Modul konfiguriert ist.
    Der Prescaler sollte aber anders eingestellt werden. 256 ist zu hoch (und damit die Frequenz ziemlich gering).

    Die RP6Lib stellt das auf 19kHz Phase Correct PWM ein - schau Dir einfach die Initialisierung in der RP6Library an! Da sind auch erläuternde Kommentare zu finden.

    Zitat:
    Code:
    TCCR1A =  (1 << WGM11) | (1 << COM1A1) | (1 << COM1B1);
    TCCR1B =  (1 << WGM13) | (1 << CS10);
    ICR1 = 210;

    Mit der Einstellung hat er bei nem PWM Wert von 70 (und das beim hier möglichen Maximalwert von 210!) noch lange nicht die Maximalgeschwindigkeit erreicht.


    In der RP6Library ist zusätzlich auch eine Regelung drin - also musst schon direkt die setMotorPower Funktion zum Vergleich hernehmen und die Regelung nicht verwenden (also nicht task_RP6System() aufrufen!)!

    Mit der Regelung fährt er natürlich deutlich langsamer an.

    Aber selbst mit setMotorPower werden die PWMs noch ein wenig langsamer hochgefahren im Timer Interrupt um abrupte Geschwindigkeitsänderungen zu vermeiden.

    MfG,
    SlyD

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.07.2007
    Beiträge
    386
    ....auf 19kHz Phase Correct....

    wie kommt ihr auf 19khz beim pwm?

    Quarz = 8 MHz ; Prescaler = 1 ; Timer = 8 Bit ergibt: (8000000Hz/1) / (256*2) = 15,625 kHz
    ich komme mit meiner rechnung auf 15,625 um den 19khz nahe zu sein die ihr am pwm habt.



    was ist "WGM13" das finde ich hier

    http://www.mikrocontroller.net/artic...R-GCC-Tutorial nicht.

    welche bezeichnung wird dadurch ersetzt?

    mfg

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    s. Datenblatt S. 101

    EDIT:
    Und die gerade hinzugefügte Frage kannst Du ebenfalls im Datenblatt nachschauen. S. 107

    MfG,
    SlyD

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.07.2007
    Beiträge
    386
    welches datenblatt, das vom atmega oder irgendwo in der wiki?
    mfg

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Im Wiki gibts keine Seite 101

    Natürlich das Datenblatt vom ATMEGA32. Auf S. 101 steht wie man die PWM Frequenz im Phase Correct Modus berechnet.


    EDIT:
    grrr jetzt hast Du da oben schon wieder einen alten Beitrag editiert...
    Quarz = 8 MHz ; Prescaler = 1 ; Timer = 8 Bit ergibt: (8000000Hz/1) / (256*2) = 15,625 kHz

    ich komme mit meiner rechnung auf 15,625 um den 19khz nahe zu sein die ihr am pwm habt.

    ICR1 auf 210 setzen dann passt es.

    MfG,
    SlyD

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.07.2007
    Beiträge
    386
    in Bascom habe ich die register in lo und hi, muss jetzt die 210 in lo rein?

    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
    ICR1L = 210
    ICR1H= 0


    mfg

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Das sieht schon besser aus - allerdings kann es immer noch sein, dass Bascom das nicht im richtigen Modus initialisiert und daher ICR1 gar nicht als TOP verwendet wird.

    Hier hilft wohl nur mal ein Blick in die Bascom Doku falls es sowas gibt.

    MfG,
    SlyD

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.07.2007
    Beiträge
    386
    wo muss ich was ändern um den wert 19khz noch zu erhöhen bzw damit die motoren bei vollgas noch weniger belastet werden ?

    meine motoren laufen jetzt in dem bascom-demo mit den werten von winavr-c. haut gut hin. habe die werte wie in winavr-c direkt geändert.

    mfg

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    wo muss ich was ändern um den wert 19khz noch zu erhöhen
    Du musst den ICR1 Wert verringern - also z.B. auf 200 setzen - nur senkst Du damit auch die Auflösung der PWM denn ICR1 ist im Phase Correct PWM Modus der TOP Wert.
    Das gesagte gilt NUR für den Phase Correct PWM Modus mit den Einstellungen aus der RP6Library - bei Dir sieht es eher so aus als wäre es der Normal oder CTC Modus - schau dazu mal lieber ins Handbuch von Bascom sonst ists nur Rätselraten!

    Bringt aber sowieso nichts - 19kHz Phase Correct PWM sind schon gut so für diese Motoren.

    MfG,
    SlyD

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress