Gast
#2115779
Hallo, ich beschäftige mich gerade mit der PWM-Problematik für ein LED-Projekt. Ich benutze auf dem Board von Pollin einen Atmega8, der extern mit 16MHz getaktet wird. Der µC macht auch soweit erstmal das, was er soll. Programmierung mit AVRISPMKII funktioniert, die UART gibt mir das Gewünschte auf dem Terminal aus, die Interrupts und die Timer funktionieren. Soweit so gut. Für die PWM-Geschichte versuche ich, den erste Codevariante aus dem TUT zu verwenden: http://www.mikrocontroller.net/articles/Soft-PWM Ich möchte mit 100Hz und 255 Schritten arbeiten. Ich lasse also meinen Timer bis 627 zählen, das sind bei 16MHz 25,5kHz. Wenn ich jetzt mit dieser Frequenz jeweils bis 255 zähle, dann sind das ca. 100Hz. Ich habe das nach bestem Wissen und Gewissen programmiert, aber ich muss einen ganz hohlen Denkfehler gemacht haben, denn die LED wird nicht etwa dunkler, sondern sie blinkt nur mit ca. 2Hz. Die UART sagt, dass der PWM-Zähler brav immer von 0 bis 255 zählt und auch an der entsprechenden Stelle die LED abschaltet. Also z.B. bei 150, wenn der Sollwert bei 150 steht. Aber irgendwie geht das viel zu langsam. Ich weiß echt nicht, was ich noch machen könnte. Ich habe das TCCR1B auseinandergenommen, überall die Frequenzen geprüft und bin mit meinem Latein erstmal am Ende. Es wäre schön, wenn mal jemand über meinen Quellcode drüber schauen könnte. Danke! Olaf