ATtiny45 Peaks in PWM

OP #4731949
Hallo,

ich bastle gerade an einer kleinen PWM-Anwendung mit dem ATtiny45. 
Controller läuft mit internem Takt.

Minimal-Programm:
1
#include <avr/io.h>
2

3
int main(void)
4
{
5
    TCCR0A |= (1<<WGM00)|(1<<WGM01); // Fast PWM
6
    TCCR0B |= (1<<CS00); // ohne Prescaler
7
    DDRB |= (1<<PB0); // PB0 als Ausgabe-Pin
8
    TCCR0A |= (1<<COM0A1);  // PWM aktivieren
9
  
10
    while (1) {
11
        OCR0A = 0; // 0 als PWM-Wert ausgeben  
12
    }  
13
}

Wenn ich das so mache, bekomme ich leider keine saubere 0-Line, sondern 
alle rund 250us einen Peak von 1us. Was mache ich falsch?
Günter M. schrieb:
> Was mache ich falsch?

Nichts.

Eine Möglichkeit dem Abhilfe zu schaffen, ist den Phase Correct Mode zu 
benutzen.
Die zweite ist, den Timer bei OCR = 0, von Clear on Match auf Set on 
Match umzuschalten und den OCR auf 255 zu setzen. Wenn du das sauber 
programmierst erhält deine PWM dann 257 statt 256 Werte.
Gast
Hi

>Eine Möglichkeit dem Abhilfe zu schaffen, ist den Phase Correct Mode zu
>benutzen.

Mit 'inverting mode' bekommst du den Peak auch weg.

MfG Spess

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.