Gast
#1735677
Hallo. Ich versuche mit einem ATMEGA32 eine PWM mit variabler Frequenz zu erzeugen. Die PWM soll immer ein konstantes Tastverhältnis von 50% haben. Dazu habe ich den 16-Bit Timer für den FAST PWM Mode konfiguriert (Mode 14, Table 47. Datenblatt Seite 112) Nun verwende ich dieses Programm: Hier wird ständig das ICR1 register (Frequenz der PWM) mit einem neuen Wert beschrieben und darauf hin das OCR1A Register (Tastverhältnis) mit der Hälfte dieses Wertes. Das Problem welches auftaucht ist folgendes: Wenn ich den Mikrocontroller laufenlasse, so sehe ich die Frequenzänderung über eine LED am OCR1A Ausgang und höre sie Über einen Lautsprecher, der ebenfalls über den OCR1A Ausgang (zusätzlich komplementärer Emitterfolger) angeschlossen ist. Es tauchen jedoch Aussätzer auf von teilweise einigen Sekunden. Sprich die LED geht aus, der Ton verstummt. Ich habe das Gefühlt, als ob der Controller plötzlich stoppen würde um dann an der selben Stelle wieder anfängt das Programm abzuarbeiten. Diese Unterberchungen sind nicht regelmäßig. Kann der Grund dafür derjenige sein, dass ich die Timer Register nicht korrekt oder in falscher Reihenfolge beschreibe? Variablenüberläufe? Bin erstmal Ratlos.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |