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 ! > > > > 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 > > > Hi Robert, > > also, erst mal danke für deine Antwort. Aber, das mit den Comparregistern, konnte ich mir auch schonn denken, aber laut Manuel, sind > PWM frequenzen bis 10Mhz bei 20 Mhz CPU clock möglich, das würde bedeuten, das bei 16 bit auflösung > das der Zähler bei 10Mhz in 100ns von null bis 65536 zählen müste. und das währe dann eine Periodendauer > des zählers von 1.5 hoch minus 12 was einer frequenz von 6.5 hoch 11 entsprechen würde, und das is es > was mich so an diesen schema stört! also müßen die das irgendwie anders machen, und denn analogen weg, intern noch nen richtigen > AD wandler einzubauen, der dann das mit dem Dreicke und Schwellwerschalter macht, is mir doch zu wage. > > also, wie machen die das ? > > noch was zu deiner Theorie, währe es nicht vernünftiger, lieber den Zähler über nen einstellbaren teiler laufen zu lassen, und > so die PWM frequenz zu bestimmen? > > also, ich hoffe auf konstriktive beiträge ;-) > > Grüße Stefan