ATmega32 PWM LED Dimmer

Gast
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "pwm.h"

void Init_PORT(void)
{

 PORTD = 0x00;
 DDRD = (1<<PD5);

}


void Init_PWM(void)
{

 //Timer1, Fast PWM,

 TCCR1A = (1<<COM1A1) | (1<<WGM11);
 TCCR1B = (1<<WGM12) | (1<<WGM13) | (1<<CS10);


}



void Set_PWM(unsigned int value)
{

 OCR1A = value;
 ICR1 = 0xFFFF;

}




int main(void)
{

 Init_PORT();
 Init_PWM();


 while(1)
 {


   Set_PWM(x);


 }

 return 0;

}
Warum setzt du IRC1? Das ist zumindest für eine normale PWM bei fester 
Frequenz nicht nötig.
Dass Du Set_PWM() in einer Endlosschleife stehen hast ist auch nicht gut 
wenn vor dem Setzen des Registers nicht darauf gewartet wird dass der 
Timer auf 0 steht.

Spring einmal vor der Endlosschleife in die Set_PWM() Funktion und 
danach nur noch wenn sich der Wert auch ändert. Das gibt sonst ein 
Durcheinander.

Grüße
Tilo schrieb:
> Ich Versuche gerade ein Power LED (weis) zu dimmen aber je dunkler ich
> sie dimmen will (kleinerer pwm  wert = dunkler) desto mehr flackert es.
> Der Atmega32 (Timer1) wird an 4Mhz betrieben (PWM Pre. = 1).
>
> Wie kann ich dieses Problem eliminieren?

Indem du keine volle 16 Bit PWM benutzt.
Bei 4Mhz kommst du damit auf eine PWM-Frequenz von ~61Hz.
Und wenn die Led Dunkel ist, sieht man das bereits.

Bruachst du wirklich eine LED mit 65536 verschiedenen Helligkeitswerten?
Gast
Nein soviele Werte sieht/unterscheidet man denk ich auch garnicht. Also 
reicht ein 8Bit PWM. Habt ihr mir ein Beispiel für einen solche 
Dimmerlampe mit LED.

Eiei ist das HEIß.

Antwort schreiben

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