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