HW\SW - PWM

Gast #218312
hallo,
versuch grad mit drüber im kalren zu werden wie Software und Hardware
PWM
funktionieren.
also Software PWM:
- man hat einen counter den man auf 0 setzt.
- man hat eine Variable die man zb auf 300 setzt,
  dh 300 bei 300 Overflows wird ein Signal ausgegeben, die restliche
  nichts mehr.

man startet einen Timer auf: wenn der Sig_Overflow kommt
-man gibt 1 am Port aus, wenn der counter kleiner als die Variable
 ist, counter hochzählen
-man gibt 0 am Port aus, wenn der counter größer als die variable ist
 counter hochzählen.
bei zb counter = 500 den counter wieder =0 setzten.
Also wurden jetzt bei 300 Interrupts eine 1 ausgegeben, bei 200 eine
0...
FERTIG ?

Hardware PWM:
man startet einen 8 bit Timer, der Timer hat ein Output Compare
Register,
in dem Output Compare Register steht meine Variable zb 200,
den Port setze ich auf 1,
irgendwann kommt ein interrupt, Compare match , das also der Timer den
Wert
200 erreicht hat.
in der Interrupt Routine setzte ich dann den Port auf 0,
wenn der Overflow kommt setze ich den Port wieder auf 1 ... usw ...
dh bis der Timer bei 200 ankommt wird 1 ausgegeben , von 200 bis 255
wird 0
ausgegeben , dann gehts von vorne los ?

stimmt das in etwa oder hab ich's falsch verstanden ?
und der Vorteil von nem HW PWM ist das der uC weniger zu tun hat ?
 chris
Gast #218313
"Hardware PWM:
man startet einen 8 bit Timer, der Timer hat ein Output Compare
Register, in dem Output Compare Register steht meine Variable zb
200, den Port setze ich auf 1, irgendwann kommt ein interrupt,
Compare match , das also der Timer  den Wert 200 erreicht hat.
in der Interrupt Routine setzte ich dann den Port auf 0,
wenn der Overflow kommt setze ich den Port wieder auf 1"

Nein. Der Komparator kann den Port selbst setzen und löschen. Du mußt
ihn nur am Anfang passend konfigurieren, dann später einfach den
gewünschten Wert für die Pulsbreite ins Compare-Register schrieben. Der
Rest läuft ganz von selbst.

"stimmt das in etwa oder hab ich's falsch verstanden ?"

Das, was du als Hardware-PWM beschreibst, ist Software-PWM.
Hardware-PWM macht wirklich alles ohne Zutun von Software.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.