mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Attiny85 PWM Problem (LED Dimmen)


Autor: Sebastian B. (snackez)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich habe folgendes Problem ich möchte gerne eine Led mit fast PWM 
dimmen, dies gelingt mir leider schon seit TAGEN nicht, ich habe schon 
überall nach lösungen gesucht, aber keine gefunden die sich auf den 
attiny85 übertragen lässt. Wäre um hilfe sehr dankbar. Lg Snackez und 
vielen Dank im Vorraus.

Hier der Quelltext von meinen Versuchen:
#include <avr/io.h>

 
int main (void)
{

  DDRB  = 1<<DDB0;
  PORTB = (1<<PB0); 
  TCCR0A=(1<<COM0A1) | (1<<WGM00) | (1<<WGM01);
  TCCR0B=(1<<WGM02) | (1<<CS00) | (0<<CS01) | (1<<CS02);
  OCR0A=128;

  while(1)
{

}
  return 1;
}

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falscher Mode: (1<<WGM02)
WGM02 muss 0 sein, dann funktioniert's ;-)

Autor: Sebastian B. (snackez)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen danke es funktioniert. Jetzt hab ich noch eine Verständnisfrage. 
Was ist dann das was ich Eingestellt habe ? Laut Datenblatt ist das ja 
auch Fast PWM aber als TOP wird OCRA was bedeutet das dann ?

Autor: Gerd M. (gerd_m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe an der Stelle zufällig letzte Woche auch gekämpft.
Mit TOP legt man den oberen Zählerwert fest, wenn dieser erreicht wird, 
wird der Zähler anschliessend zurückgesetzt.
Damit kann man eine höhere Frequenz für die PWM erreichen, mit der 
Einbusse an Auflösung.
Nur leider mit dem Ausgang PB0 (OC0A) funktioniert das ganze nicht, da 
OCRA0 sich hier nach dem setzen sich sofort wieder zurückstellt.
Wird stattdessen PB1 (OC0B) verwendet, kann man hier dem OCRA0 den 
oberen Wert festlegen und mit OCR0B die Pulsweite.

Gruß Gerd

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn OCRA Top ist, dann ist das die Obergrenze für den Zähler. Der zählt 
nicht mehr bis 255, sondern eben nur bis Top, in Deinem Beispiel 128. Da 
der Umschaltpunkt der PWM dann immer identisch mit der Obergrenze des 
Zählers ist, kann sie für PWM0A nicht mehr funktionieren. Man kann die 
Sache allerdings für PWM0B nutzen um schnellere PWMs mit kleinerer 
Auflösung zu erzeugen. Der Modus ist also nicht sinnfrei.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.