Hallo zusammen, ich habe eine grundsätzliche Frage, zu der ich im Datenblatt noch im Internet (sofern ich richtig gesucht habe) eine Erklärung gefunden habe. Mein Versuchsaufbau ist dass der OC2 Pin oszilloskopiert wird. Der Atmega läuft bei 16 Mhz. Jetzt zu meiner Frage: Wenn ich einstelle, dass die Clock durch den Faktor 1 geteilt wird, erhalte ich am Oszilloskop eine Frequenz von 62.5 kHz. Wieso ist das so?
peter schrieb: > ich habe eine grundsätzliche Frage, zu der ich im Datenblatt [...] eine Erklärung gefunden habe. Sehr schön. Weitere Antworten ebenfalls im Datenblatt zu finden. Warum 16.000.000 / 62.500 wohl = 256 ist!? Komische Zahlen...
Sorry: hier ist der Quellcod
1 | void pwm_Init(){ |
2 | TCCR2 |= (1 << WGM21) | (1 << WGM20); //8Bit Fast PWM |
3 | TCCR2 |= (0 << CS22) | (0 << CS21) | (1 << CS20); //Clock devidet by 1 |
4 | TCCR2 |= (1 << COM21) | (0 << COM20); //NON-Inverting |
5 | OCR2 = 0; |
6 | }
|
7 | |
8 | void set_pwm(double prozent){ |
9 | OCR2 = (int) prozent * 2.55; |
10 | }
|
Sonst habe ich keinerlei Einstellungen und auch keinen anderen Timer in Verwendung.
Peter schrieb: > TCCR2 |= (1 << WGM21) | (1 << WGM20); //8Bit Fast PWM > TCCR2 |= (0 << CS22) | (0 << CS21) | (1 << CS20); //Clock devidet by Also Vorteiler 1 und sonst nichts spezielles. Frage: Wenn du in einer Sekunde 16 Millionen mal zählen könntest und jedesmal nach 255 wieder bei 0 anfangen musst, wie oft hast du dann in 1 Sekunde bei 0 angefangen zu zählen? 16000000 / 256 = 62500 Na, kommt dir die Zahl irgendwie bekannt vor? FAQ: Timer
Die Antwort steht doch schon oben der Pin wird jedesmal umgeschaltet wenn das Zählregister überläuft bei 8Bit ist das nach 256 Zählschritten und 16000000Hz/256 = 62500Hz Gruß Daniel
Daniel schrieb: > Die Antwort steht doch schon oben der Pin wird jedesmal umgeschaltet nicht 'umgeschaltet'. eingeschaltet! ausgeschaltet wird er, wenn der Zählerstand dem Wert im OCR Register entspricht. Daher auch 62.5kHz und nicht 31.25kHz
Ich nehm alles zurück.. ich blöder Esel... Darauf hätte ich kommen müssen! Sorry für ie Frage
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.