Forum: Mikrocontroller und Digitale Elektronik HW\SW - PWM


von chris (Gast)


Lesenswert?

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

von Rolf Magnus (Gast)


Lesenswert?

"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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.