Forum: Mikrocontroller und Digitale Elektronik Atmega8 Timer2 PWM - Verständnisfrage


von peter (Gast)


Lesenswert?

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?

von Oliver J. (skriptkiddy)


Lesenswert?

Wie wäre es mit Quellcode?

Gruß Oliver

von Kan a. (Firma: Basta) (kanasta)


Lesenswert?

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...

von Peter (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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

von Daniel (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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

von Peter (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.