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
"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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.