[QUOTE=Eroli;509131]Hallo zusammen,
...
So, ich hab mir also das Datenblatt durchgelesen und da steht drin, dass Timer2 über eine phasenkorrekte PWM verfügt und die wollte ich dann also benutzen. Ist das allgemeine Vorgehen dafür so?
  1. Im TIMSK die entsprechenden Interrupts "erlauben". Ich denke ich werde die brauchen, siehe (*)
  2. LSB von WGM21 auf 1 setzen, um die phasenkorrekte PWM zu benutzen
  3. Im OC2 die Helligkeit einstellen oder eben wie hoch der Timer zählen soll
  4. (Über eine COM21 kann man eine (nicht)invertierte PWM benutzen)
  5. Nun wird hoffentlich die entsprechende Waveform am OC2-Pin (muss auf output geschaltet sein) erzeugt. Da hier ja nur eine Waveform am OC2-Pin erzeugt wird und ich jedoch PORTB und D brauche, werde ich wohl um die Interrupts nicht herum kommen, oder? (siehe (*))


Nun einige Fragen, die mir auf der Seele brennen
  1. Ist das Vorgehen oben überhaupt korrekt?
  2. Wird die Waveform am OC2-Pin ohnen irgendwelchen Code im InterruptHandler erzeugt (Vermutung Ja, da ja Hardware PWM)?
  3. Wie kann ich damit meine Ports pulsweitenmodellieren, was ja mein eigentlich Ziel ist. Eine Waveform nur an einem Pin bringt mir nicht sooo viel...


> Ihr würdet mir einen riesigen Gefallen tun, wenn ich ihr euch mal einige Momente Zeit
> für mich nehmen könntet
>
Hallo,

ich befasse mich gerade mit dem Timer0 des ATtiny13. Bin also auch nicht so Sattelfest, aber hoffe trotzdem Dir helfen zu können. Meistens gesellen sich dann auch andere dazu, so das doch etwas vernünftiges dabei herauskommt.
Für mich reichen leider einige Momente Zeit nicht aus um Dir komplett helfen zu können.
Aber egal ich will mal anfangen.

Zu 1 bei deinem allgemeinem Vorgehen.

Um ein Phase Correct PWM-Signal zu erzeugen bedarf es keines Interrupts. Es wird bei einem Match zwischen TCTN2 und OCR2 der Pin
OC2 ( Pin 17 => PortB3 ) je nach Konfiguration durch die Bits COM21 und COM20 ( Tabelle 17.5 Seite 122 ) gesteuert.

Zu 2. korrekt.

Zu 3. OCR2 enthält den Wert für den MATCH. OC2 ist der Pin. Der Zähler zählt dann trotzem weiter bis MAX und danach bis BOTTOM usw.

Zu 4. Ja mit den Bits COM21 und COM20 siehe Tabelle 17.5 Seite 122 wird dies eingestellt.

Zu 5. Ist mir nicht ganz klar wie Du das meinst. Dein PWM-Signal wird ja an PortB3 ausgegeben. Um dies zu vervielfachen, muß extern noch ein Baustein angefügt werden.

Ich denke hiermit auch die Fragen die Dir auf der Seele brennen wenigstens Teilweise beantwortet zu haben.

Bernd_Stein