Fast PWM beim Mega8

Gast #47865
Lesenswert?

Hallo Experten,
habe folgendes Problem:
mit meinem mega8 generiere ich ein fast pwm. Habe folgendes gemacht:

/*  PWM Configuration  **********************************/
    sbi(DDRB,PB1);      // Pin PB1 autput for PWM
    outp(0x83, TCCR1A); // Config 10 bit fast pwm
    outp(0x09, TCCR1B); // Prescaler und fast pwm

Den Wert für das Verhältnis stelle ich so ein:

void set_pwm(unsigned int pwm)
{
  unsigned char h, l;
  h = pwm >> 8;                 // inhalt um 8 bit verschieben
  l = (pwm & 0x00FF);           // bit 9 und 10 abschneiden
  outp(h, OCR1AH);
  outp(l, OCR1AL);
}

Es funktioniert soweit auch richtig, nur das ich den Wert Null% nicht
ganz erreiche. Ich habe immer noch einen ganz kleinen Peak auf meinem
Scope. Auch wenn ich
  outp(0x00, OCR1AH);
  outp(0x00, OCR1AL);
schreibe, sehe ich noch einen kleinen Peak, so als würde mein minimum
pwm 1 sein. 100% wird dagegen erreicht.

Was kann das sein ???

Danke schon im voraus.
Mattias
Gast #47866
Lesenswert?

Hi

Datenblatt gelesen? Seite 89? Viertletzter Absatz? Da wo

If the OCR1x is set equal to BOTTOM(0x0000) the output will be a narrow
spike for each TOP+1 timer clock cycle.

steht? Nein? Aha!

;-)

Matthias

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren