Gast
#5312008
Hallo, Ich habe versucht eine Fast-PWM auf einem ATmega16 bzw. 32 versucht. Das Ziel ist erstmal den Pin PD7 mit 38 kHz und 50% Dutycyle wackeln zu lassen. Hier erst mal der verwendete Code:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
Über WGM21 und WGM20 wird Mode 3 (Fast PWM) aktiviert. COM21 ist gesetzt: Clear OC2 on compare match, set OC2 at BOTTOM,(non-inverting mode) CS20 ist gesetzt: clkT2S/(No prescaling) Meine Quarzfrequenz ist 7372800Hz. 7372800 / 38000 = 194,... 255 - 194 = 61 Deshalb lade ich TCNT2 mit 61 und bei jedem Überlauf wird es erneut mit diesem Wert geladen. Ich messe aber ca. 34.5kHz statt 38kHz. Wenn ich auf internen RC-Osc. mit 8MHz umschalte messe ich etwa 36.5kHz. (Zumindest sehe ich daran, dass der externe Quarz auch verwendet wird. Die Frequenz ist auch ok.) Weiß jemand wo das Problem liegt. Danke