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
8 MHz CPU-Takt und ein PWM-Teiler von 1024 bei 8-Bit Timer, sind 30 Hz oder?
> |(1<< CS00) |(1<< CS01) |(1<< CS02); // Teiler 1014
Damit stellst du auf external clock source.
>Damit stellst du auf external clock source.
Nein, doch nicht;) Falsches Datenblatt.
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?!
:
Bearbeitet durch User
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
:
Bearbeitet durch User
> 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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.