Beim ATMEGA 8 Dil Variante sind das.
OC1A = PIN 15
OC1B = PIN 16
OC2 = PIN 17
Diese 3 Pins können als PWM arbeiten.
OC1A und OC1B laufen mit dem Timer 1
OC2 mit Timer 2
Bei einem anderen Controller nach OC Pins suchen.
Die Timer werden für den entsprechenden PWM Mode konfiguriert und die OCx Pins aktiviert und ein passender Prescaler gewählt.
Je nach dem Wert den man ins Comparematch Register schreibt kommt dann eine entsprechende Pulsweite raus.
Man kann gerade Timer 1 sehr vielseitig PWM- mässig programmieren. Vom 8Bit PWM bis 16Bit PWM ( 9 und 10Bit gehen auch soweit ich weiss ) ist da einiges möglich. Auch ein Ausgangssignal mit 50% Duty Cycle und änderbarer Frequenz.
Fast PWM solltest Du nicht machen, weil da keine Werte mit 0 ( = kein Signal ) möglich ist.
Initialisierungsstrings müsste ich jetzt zusammensuchen, da ich jetzt nicht ganz genau weiss was Du konkret brauchst hilft Dir das auch wenig.
Alles läuft dann in Hardware und benötigt deshalb keine zusätzliche Rechenleistung mehr, ausser zum Schreiben der Comparematch Register.
Lesezeichen