www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Unterschied zwischen Hardware PWM und Software PWM


Autor: avr user (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

was ist den der Unterschied zwischen Hardware PWM und Software PWM ? 
Bzw. braucht man beim Hardware PWM keinen Timer mehr?
Wenn ich in BASCOM die Funktion SERVO verwende, verwende ich dann 
Hardware PWM oder Software PWM???
Wie viele Hardware PWMs hat der ATMEGA 8 bzw. 32 ?

Ich wäre für eine Antwort sehr dankbar!
lg

Autor: Thomas Bremer (Firma: Druckerei Beste) (virtupic)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hardware PWM ist anders implementiert als Software PWM. Bei HW 
konfigurierst du einfach die Frequenz und gibst den Duty Cycle an. Bei 
SW musst du dich um das gesamte Timing selbst kümmern.

HW benutzt einen eigenen oder reservierten Timer. Sorry, mit ATMEGA 
kenne ich mich nicht aus.

virtuPIC
/ggadgets for tools & toys

Autor: Olaf Stieleke (olaf2001)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Viel einfacher.

Bei Software-PWM läuft ein Programm, das den entsprechenden I/O-Port zur 
rechten Zeit auf den richtigen Pegel zieht. Timing ist Sache der 
Software.

Bei Hardware-PWM wird einem internen PWM-Schaltkreis nur noch der nötige 
Satz Parameter eingegeben, den Rest macht der Schaltkreis.

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Olaf Stieleke wrote:

> Bei Software-PWM läuft ein Programm, das den entsprechenden I/O-Port zur
> rechten Zeit auf den richtigen Pegel zieht. Timing ist Sache der
> Software.

Damit verbunden sicher auch ein gewisser Jitter, vor allem wenn noch 
irgendwelche Interrupts im Spiel sind.

Autor: avr user (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aber beim HW PWM hab ich keine software timer der im bestimmten 
intervall in eine routine springt oder?
kann das der atmega32?

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

Bewertung
0 lesenswert
nicht lesenswert
avr user wrote:
> Hallo,
>
> was ist den der Unterschied zwischen Hardware PWM und Software PWM ?
> Bzw. braucht man beim Hardware PWM keinen Timer mehr?
Doch, gerade da braucht man den Timer, aber eben sonst nichts. 
Hardware-PWM bedeutet, dass ein Timer, der die dafür nötige 
Zusatzhardware besitzt (eine Compare-Einheit) das PWM-Signal komplett 
autark erzeugt, ohne dass die Software eingreifen muss. Die Software 
muss nur den Timer initialisieren und die Parameter gegebenenfalls 
aktualisieren, den Rest macht die Hardware (daher der Name)...

> Wenn ich in BASCOM die Funktion SERVO verwende, verwende ich dann
> Hardware PWM oder Software PWM???
Das muss die BASCOM-Dokumentation hergeben.

> Wie viele Hardware PWMs hat der ATMEGA 8 bzw. 32 ?
Steht im Datenblatt...

@ Thomas Bremer (Firma Druckerei Beste) (virtupic):
Würdest Du vielleicht endlich mal dieses bekloppte
> Airspace V - international hangar flying!
> http://www.airspace-v.com/ggadgets for tools & toys
unterlassen? Das ist hier im Forum bekanntermaßen nicht erwünscht und es 
nervt gewaltig!

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

Bewertung
0 lesenswert
nicht lesenswert
avr user wrote:
> aber beim HW PWM hab ich keine software timer der im bestimmten
> intervall in eine routine springt oder?
> kann das der atmega32?
Was bitteschön ist ein Software-Timer ? Timer sind Hardware ...

Normalerweise wird eine Soft-PWM dann eingesetzt, wenn die 
Hardware-PWM-Ausgänge des µC nicht ausreichen. Dann wird eben nicht 
direkt vom Timer (ohne Beteiligung der Software) ein Pin umgeschaltet, 
sondern es wird zum entsprechenden Zeitpunkt (z.B. per Interrupt) das 
Umschalten der Pins im Programm erledigt. Der verwendete Timer ist 
i.d.R. in beiden Fällen der selbe. Nur wird eben in einem Fall alles 
per Hardware gemacht (inklusive Setzen bzw. Löschen der Portpins) und im 
anderen Fall muss eben die Software eingreifen.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
avr user wrote:
> aber beim HW PWM hab ich keine software timer der im bestimmten
> intervall in eine routine springt oder?

Das widerspricht sich.
Eine Hardware PWM wird nun mal mit einem Hardware Timer erzeugt.
Und der ist, wie der Name schon sagt, nun mal kein Software Timer.

Allerdings kannst du dich selbstverständlich mit Interrupt Handlern
an den Hardware Timer anhängen. Da gibt es keinen Unterschied.
Timer ist Timer. PWM bedeutet ja in diesem Zusammenhang nur, dass
der Timer neben seiner üblichen Zählerei auch noch einen
Hardware-Ausgang bedient.

> kann das der atmega32?

Ich formuliere es mal freundlich:
Wie wäre es, wenn du dir bei Atmel mal das Datenblatt besorgst.
Da gibt es einen grossen Abschnitt darüber, was der Timer kann
und wie man das ganze konfiguriert.

Auch wenn dir BASCOM eine Menge Arbeit abnehmen kann, ist das
Studium des Datenblattes noch immer eine wichtige Wissensquelle.

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.