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


von Sebastian B. (snackez)


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:
1
#include <avr/io.h>
2
3
 
4
int main (void)
5
{
6
7
  DDRB  = 1<<DDB0;
8
  PORTB = (1<<PB0); 
9
  TCCR0A=(1<<COM0A1) | (1<<WGM00) | (1<<WGM01);
10
  TCCR0B=(1<<WGM02) | (1<<CS00) | (0<<CS01) | (1<<CS02);
11
  OCR0A=128;
12
13
  while(1)
14
{
15
16
}
17
  return 1;
18
}

von MWS (Gast)


Lesenswert?

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

von Sebastian B. (snackez)


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 ?

von Gerd M. (gerd_m)


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

von MWS (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.