Dimmen der PWM bei timer0 ATmega 32

Gast #6166917
Lesenswert?
• ▲
▼
moin
vieleicht hat jemand einen hinweis,

folgendes szenario:
Atmega 162

5 PWM Kanäle :

alle über die hardware PWM :
init :

TCCR1A |= ((1<<WGM10)| (1<<COM1B1 )  |(1<<COM1A1));
TCCR1B |= ((1<<CS11)|(1<<CS10) );

TCCR3A |=  ((1<<WGM30)|(1<<COM3A1)| (1<<COM3B1 ));
TCCR3B |= ((1<<CS31) | (1<<CS30) ); //

TCCR0  |=  ((1<<WGM00) | (1<<CS01)  | (1<<COM01) | (1<<CS00));

bei 8 Mhz sind das 250Hz.

soweit funktioniert es.

Einstellung der Dimmfrequenz funktioniert sauber,
nur bei TCCR0 habe ich das problem, das während des Dimmen in OCR0 auf 
dem Kanal (und nur da)das Licht flackert. als würde er abschalten.
Ich habe ca.100 ms zwischen den Dimmsteps bei 50 Steps.

Interrupts kommen zum Zeitpunkt des Dimmens nicht.

Irgendjemand eine Idee ? Habe ich in 300 Seiten doch noch was übersehen?
Gast #6168033
Lesenswert?
• ▲
▼
kurze Rückmeldung. das war es!

ich habe trotzdem noch eine Frage. Jemand hat es in Bascom gemacht, dort 
funktionierte es auch ohne fast pwm. Ich habe kein Bascom und bin damit 
auch nicht vertraut.

Ich könnte mir nur erklären, das beim setzen von ORC0 der Bascom 
Compiler
automatisch ein „warte bis compare „ macht und das setzt.

wäre mal interessant, was da so im Hintergrund gemacht wird.

Vieleicht hat da ja jemand ein Assembler Listing zum setzen von ORC0.

so long
Gast #6168048
Lesenswert?
• ▲
▼
>> Keine Doppelpufferung des Timer0 Compareregisters ...?
> das wirds wohl sein. danke für den hinweis.ich versuchs mal
> mit phase pwm danke !

> kurze Rückmeldung. das war es!

Das wundert mich jetzt (allerdings ohne es genauer angeschaut zu haben): 
im Datenblatt des ATmega162 steht: The OCR0 Register is double buffered 
when using any of the Pulse Width Modulation (PWM) modes.
Gast #6168075
Lesenswert?
• ▲
▼
S. Landolt schrieb:
>>> Keine Doppelpufferung des Timer0 Compareregisters ...?
>> das wirds wohl sein. danke für den hinweis.ich versuchs mal
>> mit phase pwm danke !
>
>> kurze Rückmeldung. das war es!
>
> Das wundert mich jetzt (allerdings ohne es genauer angeschaut zu haben):
> im Datenblatt des ATmega162 steht: The OCR0 Register is double buffered
> when using any of the Pulse Width Modulation (PWM) modes.

Dachte ich auch...
aber :

.."except the double buffer feature of the output
compare unit is enabled in the fast PWM mode."

das steht in den anderen Modes nicht.
Gast #6168084
Lesenswert?
• ▲
▼
Der Satz lautet vollständig:
.... This feature is similar to the OC0 toggle in CTC mode, except the 
double buffer feature of the output compare unit is enabled in the fast 
PWM mode.

Und das interpretiere ich so, dass im fast-PWM-Modus eben doppelt 
gepuffert wird, im Gegensatz zum CTC-Modus.
Gast #6168163
Lesenswert?
• ▲
▼
S. Landolt schrieb:
> Der Satz lautet vollständig:
> .... This feature is similar to the OC0 toggle in CTC mode, except the
> double buffer feature of the output compare unit is enabled in the fast
> PWM mode.
>
> Und das interpretiere ich so, dass im fast-PWM-Modus eben doppelt
> gepuffert wird, im Gegensatz zum CTC-Modus.

ja. eben im „fast-PWM-Modus“
Gast #6168556
Lesenswert?
• ▲
▼
> ja. eben im „fast-PWM-Modus“

Ich denke, das steht da, weil dieser am ehesten mit dem CTC-Modus 
vergleichbar ist.
  Eigentlich sollten sich die Verhältnisse bei phase-correct-PWM mit 
einem simplen 20-Zeiler klären lassen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.