eine Led flacket bei 8-Bit PWM (Atmega128)

OP #4594936
Hallo Freunde !

Wie schon oft in diesem Jahr sitze ich wieder mal grübelnd vor einem 
Problem.
Ich hatte ein Programm (ATMega128) geschrieben für eine LED Ansteuerung 
per PWM.
Ging auch alles gut, nun ist der SRC-Code mir abhanden gekommen , gesagt 
getan , neu geschrieben das ganze, weil ja andere Funktionen im Programm 
noch fehlten.
Ich benutze die beiden 8 Bit PWM Channels OC0 (PB4) und OC2 (PB7) 
vorerst nur. Ich kann nun wieder Dimmen , aber die LED vom OC0 an PB4 
flackert.
Die  LED getauscht, selbes Problem, wieder an OC0.

Zur Fehlersuche habe ich den Code etwas vereinfacht und er ist hier 
einzusehen:

http://oderlachs.de/forum/code/atm128pwm.html

Ich programmiere das ATM128 Board über das STK500 per ISP. Vom STK500 
nutze ich auch die LEDs für den Probelauf.
Als Entwicklungsumgebung nutze ich "Geany" unter Linux.

Vielleicht kann sich ja wer bitte den Code mal ansehen und hat eventuell 
einen Tip für mich??

Gruss und Dank

Gerhard
#4594945
holger schrieb:
>>        |(1<< CS00) |(1<< CS01) |(1<< CS02);       // Teiler 1014
>
> Damit stellst du auf external clock source.
Aber doch nur bei den 16 Bit Timern (Timer1 und Timer3), er benutzt aber 
die 8-Bit Timer 0 und 2

EDIT:
Stimmt Timer2 geht dann auch auf Extern.

Fazit:
LED an OC0 Flackert weil 30 Hz, LED an OC2 Flackert nicht, weil kein 
Takt an T2?!
OP #4594974
Timmo H. schrieb:

> Fazit:
> LED an OC0 Flackert weil 30 Hz, LED an OC2 Flackert nicht, weil kein
> Takt an T2?!

Danke für den Hinweis, aber da gucke ich mal ganz dumm und unwissend :(

Wo kommen diese 30Hz her ?? Bin noch nicht sooo intern mit dem Wissen 
darüber.

Anderseits, frage ich mich wieso ging das vorher ??


Gruss und Dank

Gerhard

Nachtrag habe nun Div 64 eingestellt, OK !!
Aber den Unterschied doch nicht verstanden habe, warum eine Port geht 
und der andere nicht
Gast #4594996
> Wo kommen diese 30Hz her ?? Bin noch nicht sooo intern mit dem Wissen
> darüber.

CPU-Takt /Vorteiler /'Timerlauflänger' - bei angenommenen 8MHz, 
eingestelltem Vorteiler von 1024 (nur bei Timer0 - Timer2 steht laut 
meinem Datenblatt auf 'External clock source on T2 pin') und einem 8 Bit 
Timer (der im eingestellten Fast-PWM-Modus von 0 bis 255 läuft) ergibt 
sich etwa 8MHz /1024 /256 = 30.5Hz

Details warum das so ist stehen im Datenplatt, das entgegen landläufiger 
Meinung nicht zum Nichtlesen da ist ;-)

> Aber den Unterschied doch nicht verstanden habe, warum eine Port geht
> und der andere nicht

Unterschiedliche Taktquellen/Vorteiler eingestellt, Rest siehe 
Datenplatt.

HTH
OP #4595813
Hallo Freunde !
Habt alle vielen Dank für Eure Mithilfe, jetzt habe ich das Problem 
lösen können.
Habe den Vor-Teiler etwas kleiner gesetzt, das wars.

Zu :
>Details warum das so ist stehen im Datenplatt, das entgegen landläufiger
>Meinung nicht zum Nichtlesen da ist ;-)

Die Datenblätter "lese" ich eigentlich immer, aber bei jemanden der nie 
englisch gelernt hat, mag man mir beim Erstprojekt mit PWM auch mal 
einen Fehler verzeihen.

Jedenfalls habe ich dank Eurer Hilfe und meiner Fehler wieder was dazu 
gelernt :)

Mit besten Grüssen

Gerhard

Antwort schreiben

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