mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM zur Servomotorsteuerung


Autor: Klaus Günzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo allerseits,

ich, blutiger Anfänger, taste mich gerade mit einem Candip+Atmel ATmega
162 in Richtung PWM-Erzeugung. Mein Ziel ist es in Abhängigkeit einer
gespeicherten Kennlinie einen kleinen Modellbauservo mit
Pulsweitenmodulation anzusteuern. Führungsgröße soll hier die Drehzahl
eines Verbrennungsmotors sein, die ich schon im MC habe.

Das Programm für eine bestimmte PWM-Frequenz und ein festes
Taktverhältnis habe ich schon geschrieben. Nun würde ich gerne wissen,
wo und wie ich am besten meine Kennlinie (eindimensional, ca. 50 Werte)
abspeichern kann.
Ich habe von einem Bekannten gehört, dass man bei den ATMEL uC's unter
".dseg" prima etwas abspeichern kann. Leider kann ich das in meinem
Handbuch bislang nicht finden.

Auch weiss ich nicht, wie ich es managen soll, dass das Programm aus
der eingespeisten Stellgröße die abgespeichterte Pulsweite ermittelt
und dann an das Unterprogramm zur Erzeugung der eigentlich Pulssignale
übergibt.

Hilfe!

Kann natürlich auch sein, dass es einen viel einfacheren Weg gibt und
ich gleich was viel zu kompliziertes plane....

Ein kleiner Tip, Buch, Fachschrift oder auch was persönliches wäre ein
Segen für mich.

Klaus

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Programmierst du in Assembler, Forth, Basic, C, Fortran, Cobol, Lisp
oder Pascal?

Olaf

Autor: Klaus Günzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Olaf!

Ich programmiere in Assembler, AVR Studio nennt sich das Prorgamm

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In dem Falle kannst du deine Konstanten mit einer Assembler direktive
direkt in dein Programm stellen, und dann indirekt adressieren.

Ich kann dir nur leider kein Programmbeispiel zeigen weil ich die AVRs
normalerweise in C programmiere und wenn schon in Assembler dann mit
Arnolds Assemler, da will ich nichts falsches sagen.

Lies dir mal die Anleitung zum Assembler durch. Da steht irgendwo was
ueber .db, .dw oder .data

Olaf

Autor: Buchmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
di hast also eine Messgröße, und abhaengig von der willst du diw
Pulsweite deines Stellsignals verändern  - hoffe das ist soweit
richtig. Du brauchst nur den "Fast PWM Mode" (oder auch den normalen)
je anch Frequenz die du haben willst, eines Timers starten, der selbigen
unterstützt, und kannst dann in das Compare-Register einen Wert,
abhängig von deiner Messgröße laden. dadurch veränderst du die
Pulsweite des Ausgangssignals.

mfg Buchmann

Autor: Klaus Günzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Micheal!

Das ist schon soweit klar (PWM-Mode und Compare-Funktionen), nur die
Umsetzung in einen Code läuft noch nicht so ganz, schätze mal, ich muss
mich durch die harte Wurst des Datenblatts durchknabbern.
Vielen Dank jedoch für alle Tips!

Klaus

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.