- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 3542

Thema: Willas Shrediquette Tricopter / Quadrocopter / Hexacopter

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker Avatar von Picojetflyer
    Registriert seit
    03.08.2004
    Ort
    Sauerland
    Beiträge
    247
    Zitat Zitat von deHarry Beitrag anzeigen
    Haarig wurde es erst, als ich versucht habe, die Impulse für die ESCs zu erzeugen.
    Hier wollte ich CCM "Clear on Compare Match" verwenden, was ich so verstanden habe, dass ich den Timer mit Null und gesetztem Ausgangsbit starte, einen Comparewert vorgebe, der bei Erreichen zum Interrupt führt und gleichzeitig den Timer rücksetzt (wieder bei Null anfangen lässt zu zählen) und den Ausgang löscht, und zwar ohne user intervention.
    Also wenn ich dich richtig verstanden haben möchtest du das so machen:

    Do
    Timer mit 0 starten und hochzählen lassen mit aktivierten OC-Pin
    Timer erreicht Compare wert z.b 100
    Compare Match setzt Timer auf 0 zurück und setzt OC-Pin auf low
    Timer zählt wieder bis Compare hoch
    Compare löscht wieder Timer aktiviert wieder OC-Pin
    Loop

    richtig???

  2. #2
    Erfahrener Benutzer Roboter-Spezialist Avatar von deHarry
    Registriert seit
    17.08.2010
    Beiträge
    597
    Fast.

    Do
    Timer mit 0 starten und hochzählen lassen mit aktivierten OC-Pin
    Timer erreicht Compare wert z.b 100
    Compare Match setzt Timer auf 0 zurück und setzt OC-Pin auf low
    -> hier den Timer anhalten und wahlfrei "irgendwann" wieder starten mit OC-Pin auf low
    -> Nach dem NeuStart, bei dem der Pin wieder zu setzen ist:
    Timer zählt wieder bis Compare hoch
    Compare löscht wieder Timer, deaktiviert wieder OC-Pin
    Loop

    Aber das von dir skizzierte Szenario müsste ebenfalls funktionieren, dann hätten wir halt doch ein symmetrisches (Low-Hi-Anteil) PWM-Signal.
    Wenn ich das dann richtig interpretiere, läuft das ja inzwischen einwandfrei in deinem Copter

    Mich stört hieran nur die geringe Auflösung. Das ist der fehlenden Prescalerstufe 32 geschuldet, richtig?
    Gruß
    Harald
    __________________
    Modellbau&Elektronik
    www.harald-sattler.de

  3. #3
    Erfahrener Benutzer Begeisterter Techniker Avatar von Picojetflyer
    Registriert seit
    03.08.2004
    Ort
    Sauerland
    Beiträge
    247
    Zitat Zitat von deHarry Beitrag anzeigen
    Aber das von dir skizzierte Szenario müsste ebenfalls funktionieren, dann hätten wir halt doch ein symmetrisches (Low-Hi-Anteil) PWM-Signal.
    Wenn ich das dann richtig interpretiere, läuft das ja inzwischen einwandfrei in deinem Copter

    Mich stört hieran nur die geringe Auflösung. Das ist der fehlenden Prescalerstufe 32 geschuldet, richtig?
    Haar genau! der 32er Prescaler fehlt total. Ich bin noch am tüfteln mit den PID Werten aber eigentlich merkt mal die geringere Auflösung gar nicht. Die Knüppelstellung wird auch nur mit 74 Schritten aufgelöst und an der Feinfühligkeit merkt man auch nix. Allerding könnte ich mir vorstellen das man es mit zunehmender Minisierung (es soll ja Leute geben die sowas wie ein sNQ bauen ) die geringere Auflösung doch merkt.
    Wofür möchtest du den Timer denn stoppen? Brauchst du den für was anderes?

    Code:
    Config Timer0 = Timer , Compare_a = Toggle , Prescale = 64 , Clear_timer = 1
    Damit erzeugt man ein symmetrisches PWM Signal. Hab es grade ausprobiert.

    Gruß

    Matthias

  4. #4
    Erfahrener Benutzer Roboter-Spezialist Avatar von deHarry
    Registriert seit
    17.08.2010
    Beiträge
    597
    Oh Mann!!
    Da war es wieder... Wer sinnbegreifend lesen kann ist klar im Vorteil...

    "Clear_Timer" ist das Zauberwort.
    Steht (nicht dick und fett) in allen Hilfethemen von Bascom zu den Timern in der Parameterliste drin, ist aber nicht explizit erklärt, also hat's der gute Harry nicht mehr gesehen .
    Danke für das (ökologisch verträgliche) beiseite räumen des Waldes!!

    Was die Auflösung angeht stimme ich dir vorbehaltlos zu. Die Feinfühligkeit der Steuerung ist nicht so sehr das Problem, sondern die Onboard-Regelung muss so feinstufig wie möglich erfolgen, weil je kleiner, je kippeliger ist das Teil.

    Ach ja... Stoppen wollte ich den Timer, damit ich von den 40 µs weg komme. Mir erschien ein Wert in der Größenordnung von 3..4 ms sympatischer.

    Meine aktuelle Routine zur PWM-Erzeugung stellt 255 diskrete Werte für die vier ESCs zur Verfügung und durch Optimierung der Receiver-IRQ-Routine scheine ich es geschafft zu haben, die gegenseitigen Störungen zu eliminieren oder doch zumindest soweit verringert zu haben, dass es mir seit dem nicht mehr aufgefallen ist.
    Die Pause zwischen den Impulsen ist variabel und hängt direkt an den anderen drei Sollwerten, die Impulse werden reihum erzeugt.
    Vorlage war ein Servo-Beispiel aus www.mikrocontroller.net.
    Gruß
    Harald
    __________________
    Modellbau&Elektronik
    www.harald-sattler.de

  5. #5
    Erfahrener Benutzer Begeisterter Techniker Avatar von Picojetflyer
    Registriert seit
    03.08.2004
    Ort
    Sauerland
    Beiträge
    247
    Die Hilfe von Bascom könnte mal überarbeitet werden. Nicht jede Unterart von den Befehlen wir klar erklärt...
    Ich hatte auch erst daran gedacht die Servo Routine von Willa zu erweitern. So wie es Nils mit seiner Kammera anti wackel Halterung mal gemacht hat.
    Aber ich will die Hardware des Controllers so effizient wie möglich nutzen und so wenig wie möglich durch das Programm abarbeiten lassen.

    Mir ging grade ein Licht auf! Der Mega2560 hat vier 16Bit Timer. Jeder hat mindestens zwei Compare Pins. Bei 16 Bit könnte man mit einen Prescaler=8 eine Auflösung von 2000 Schritten erreichen mit der Clear_Timer Funktion.

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von Bammel
    Registriert seit
    11.12.2004
    Ort
    Bremen
    Alter
    38
    Beiträge
    1.400
    Hey,

    das klingt ja alles super
    ich werde für den sNQ mal am wochenende die hardware-lösung testen... vllt heben sich ja die geringe auslösung durch die 490Hz wiederholrate auf!? denn unser programm läuft ja mit rund 400Hz wenn ich das noch richtig in erinnerung habe.

    gruß, sven
    Der miniatur Quadrocopter: www.nanoquad.de

  7. #7
    Erfahrener Benutzer Roboter-Spezialist Avatar von deHarry
    Registriert seit
    17.08.2010
    Beiträge
    597
    Zitat Zitat von Bammel Beitrag anzeigen
    vllt heben sich ja die geringe auslösung durch die 490Hz wiederholrate auf!?
    Ähm... nein.

    Wenn die Auflösung zu gering ist (nur falls, ich unterstelle nicht, dass das so ist), hilft eine höhere Wiederholrate nicht gegen die Überschwinger, die sich durch die zu geringe Auflösung ergeben könnte.

    Ich bin da aber Pragmatiker. Wenn deine Tests am WE ergeben, dass die Regelung mit HW-PWM und geringer Auflösung funktioniert, verbeiße ich mich nicht in theoretische Abgründe, sondern verwende das einfach
    Gruß
    Harald
    __________________
    Modellbau&Elektronik
    www.harald-sattler.de

Stichworte

Berechtigungen

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

12V Akku bauen