ATmega328p-pu -> 8-Bit-Timer mit LED

Gast #4907355
Hallo, ich habe bei PD5 eines ATmega328p eine LED hängen, die ich gerne 
über FastPWM dimmen möchte. (
Mein Problem ist folgendes: Die LED leuchtet die ganze Zeit, und scheint 
nicht mal beeindruckt von dem Wert, den ich ins OCR0B-Register schreibe, 
der ja ständig mit dem aktuellen Timerwert kontrolliert wird, und bei 
einem match den Ausgang der LED auf Low schalten sollte, zu sein.
Hier mal mein Code:
1
#include <avr/io.h>
2

3
void init_timer0(void);
4

5

6
int main(void)
7
{
8

9
  DDRD |= (1<<PIND5);
10

11
  init_timer0();
12
OCR0B = 100; //Dieser Compare-Wert lässt meine PWM völlig kalt
13

14

15
    while (1);
16
}
17

18

19
void init_timer0(void) 
20
{
21
TCCR0A |= /*(1<<COM0B0) |*/ (1<<COM0B1) | (1<<WGM00) | (1<<WGM01);
22
TCCR0B |= (1<<WGM02) | (1<<CS02) | (1<<CS00); //Prescaller von 1024
23
}
#4907651
Felix schrieb:
> Eigentlich sollte man OCR0B setzen, das sieht man auch bei der
> Pinbelegung der Pinout-Map.(Anhang)

Um den Schaltpunkt der PWM festzulegen ist das auch richtig. Du hast 
aber auch WGM0:2 gesetzt, damit zählst die PWM bis zum Wert, der in 
OCR0A steht, da du den nicht festgelegt hast zählt die PWM nur bis 0, 
der Ausgang soll aber nur geschaltet werden, wenn 100 erreicht ist. Das 
wird nie erreicht, also wird auch nie geschaltet. Das hab ich heute 
morgen übersehen.
Gast #4907681
Felix schrieb:

> Eigentlich sollte man OCR0B setzen, das sieht man auch bei der
> Pinbelegung der Pinout-Map.(Anhang)

In dem PWM-Modus, den du eingestellt hast, muss man BEIDES setzen. Das 
eine kontrolliert die Zykluszeit, das andere den Duty.

Lies doch endlich mal dieses verschissene Datenblatt, damit du endlich 
wirklich weisst, was du da tust!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 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.