Re: PWM Kategorie: Sonstige Hardware (von Robert - 2.11.2001 15:02) | |
Als Antwort auf PWM von Stefan - 1.11.2001 22:22
| |
> Hi @ All > > also, ich halb mal ne frage, wei� jemand von euch, wie die von infineon, Atmel usw, das mit der internen > PWM erzeugung machen? dann könnt ich das nämlich mal nachbauen. brauch namlich ne 16 kanal > PWM einheit, auflösung ist erstmal egal, aber das würde sich ja machen lassen, mir gehts nur um das > Prinizip, wie die das machen. > > also, wenn jemand dieses tiefe fachwissennn hat, würd ich mich freuen, wenn er dieses mit mir teielt. > ;-) > > also bis denne > > CU Stefan Hallo Stefan Also, PWM bedeutet Puls-Weiten-Modulation. Die Pulse haben eine konstante Period (ansteigende Flanke zeitlich konstant) und eine variable Pulsbreite (breite des Pulses zwischen ansteigender und absteigender Flanke ist variabel. Das wird in den CPU's in der Regel mit 2 Compare-Register gemacht. Die Compare-Register sind einfache Zähler, die bei jedem CPU-Takt das jeweilige Register um +=1 weiter zählen, und beim erreichen eines im Register programierten Wertes einen Interrupt auslösen. Im Comparregister 1 wird die Periodendauer abgelegt (z.B. 1000 Takte). Sobald der Interrupt des Comparregister-1 ausgelöst wird, wird in der Interruptroutine der Signal-Port auf 1 gesetzt. Im Comparregister-2 wird die variable Pulslänge (z.B. 200 Takte) gesetzt und der nächste zyklus des Comparregister-1 gestartet. Danach wartet die CPU auf den Interrupt des Comparregister-2. In der Interruptroutine des Comparregister-2 wird der Signal-Port wieder auf 0 zurückgesetzt. Danach wartet die CPU wieder auf den Interrupt des Comparregister-1. Das war's ! Man kann das ganze auch mit nur einem Compare-Register machen, dann mu� man jedoch beide Signalzeiten High und Low vorher berechnen, soda� wieder eine konstante Periodendauer dabei herauskommt. An Stelle der CPU-internen Compareregister kann man auch extere Zähler dafür verwenden. Gru� Robert | |
Antwort schreiben Antworten: Re: PWM (von Stefan - 2.11.2001 15:21) Re: PWM (von Robert - 2.11.2001 18:10) |