Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > > 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