www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik mehrere PWM Ausgänge am mega88 verwenden


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich hätte mal eine Frage zum ATMega88:

Ich will mehrere PWM Ausgänge nutzen.
Ist es möglich, gleichzeitig 2 Register, die an einem Timer hängen, also 
z.B. OC1A und OC1B zu verwenden.
Der Timer zählt ja eigentlich bis zu einem der beiden Compare-Werte und 
dann wieder runter.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas wrote:

> Der Timer zählt ja eigentlich bis zu einem der beiden Compare-Werte und
> dann wieder runter.

Im ,,klassischen'' PWM-Modus zählt er bis zur maximalen Zählweite
(0xFF/0x1FF/0x3FF je nach Modus), dann kannst du die beiden OCRs
auf jeden Fall parallel benutzen.

Wenn OCR1A die Zählweite bestimmt, geht es logischerweise nicht,
dass er auch gleichzeitig die Impulsbreite bestimmt.

Alternativ zu OCR1A kannst du aber die Zählweite auch durch ICR1
bestimmen lassen, dann hast du wieder beide OCRs zur Verfügung.

Autor: sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich grabe diesen thread mal wieder aus, da ich versuche mit einem µC 
soviele wie möglich PWM's laufen zu lassen.

wie man mit dem 16 Bit-timer eine PWM erzeugt ist mir klar:

TCCR1A = (1<<COM1A1) | (1<<WGM11);
  TCCR1B = (1<<WGM13) | (1<<WGM12);
  TCCR1B|=0b00000001;
 
  //
  //  den Endwert (TOP) für den Zähler setzen
  //  der Zähler zählt bis zu diesem Wert
 
  ICR1 = 0x00FF;
 
  //
  // der Compare Wert
  // Wenn der Zähler diesen Wert erreicht, wird mit
  // obiger Konfiguration der OC1A Ausgang abgeschaltet
  // Sobald der Zähler wieder bei 0 startet, wird der
  // Ausgang wieder auf 1 gesetzt
  //
  // Durch Verändern dieses Wertes, werden die unterschiedlichen
  // PWM Werte eingestellt.
 
  OCR1A = 0x002F;

aber für die 8bit-timer gibt es kein ICR-register.
ich wollte wissen, wie ich mit den 8 bit-timern eine PWM-erzeuge, die 
genauso aussieht wie die vom 16-bit timer. (wenn das überhaupt geht)
schließlich werden im datenblatt ja 6 PWM-channels angegeben, sind die 
wirklich alle unabhängig von einander regelbar?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sam wrote:
> ich grabe diesen thread mal wieder aus, da ich versuche mit einem µC
> soviele wie möglich PWM's laufen zu lassen.
Warum machst Du keinen neuen Thread auf?

> aber für die 8bit-timer gibt es kein ICR-register.
> ich wollte wissen, wie ich mit den 8 bit-timern eine PWM-erzeuge, die
> genauso aussieht wie die vom 16-bit timer. (wenn das überhaupt geht)
> schließlich werden im datenblatt ja 6 PWM-channels angegeben, sind die
> wirklich alle unabhängig von einander regelbar?
Nein, natürlich nicht. Zu jedem Timer gehören zwei PWM-Kanäle, deren 
Signale immer die gleiche Frequenz haben. Die Compare-Werte selbst sind 
natürlich für alle 6 Kanäle unabhängig einstellbar.

Da es bei den 8-Bit-Timern tatsächlich kein separates Register für den 
TOP-Wert gibt, muss man, wenn man jeweils beide Kanäle nutzen will, 
einen PWM-Modus mit fest eingestelltem TOP-Wert (also eine 8-Bit-PWM) 
nehmen.

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.