Hi, ich hätte mal eine Frage zum ATMega88: Ich will mehrere PWM Ausgänge nutzen. Ist es möglich, gleichzeitig 2 Register, die an einem Timer hängen, also z.B. OC1A und OC1B zu verwenden. Der Timer zählt ja eigentlich bis zu einem der beiden Compare-Werte und dann wieder runter.
Thomas wrote: > Der Timer zählt ja eigentlich bis zu einem der beiden Compare-Werte und > dann wieder runter. Im ,,klassischen'' PWM-Modus zählt er bis zur maximalen Zählweite (0xFF/0x1FF/0x3FF je nach Modus), dann kannst du die beiden OCRs auf jeden Fall parallel benutzen. Wenn OCR1A die Zählweite bestimmt, geht es logischerweise nicht, dass er auch gleichzeitig die Impulsbreite bestimmt. Alternativ zu OCR1A kannst du aber die Zählweite auch durch ICR1 bestimmen lassen, dann hast du wieder beide OCRs zur Verfügung.
ich grabe diesen thread mal wieder aus, da ich versuche mit einem µC soviele wie möglich PWM's laufen zu lassen. wie man mit dem 16 Bit-timer eine PWM erzeugt ist mir klar:
1 | TCCR1A = (1<<COM1A1) | (1<<WGM11); |
2 | TCCR1B = (1<<WGM13) | (1<<WGM12); |
3 | TCCR1B|=0b00000001; |
4 | |
5 | //
|
6 | // den Endwert (TOP) für den Zähler setzen
|
7 | // der Zähler zählt bis zu diesem Wert
|
8 | |
9 | ICR1 = 0x00FF; |
10 | |
11 | //
|
12 | // der Compare Wert
|
13 | // Wenn der Zähler diesen Wert erreicht, wird mit
|
14 | // obiger Konfiguration der OC1A Ausgang abgeschaltet
|
15 | // Sobald der Zähler wieder bei 0 startet, wird der
|
16 | // Ausgang wieder auf 1 gesetzt
|
17 | //
|
18 | // Durch Verändern dieses Wertes, werden die unterschiedlichen
|
19 | // PWM Werte eingestellt.
|
20 | |
21 | OCR1A = 0x002F; |
aber für die 8bit-timer gibt es kein ICR-register. ich wollte wissen, wie ich mit den 8 bit-timern eine PWM-erzeuge, die genauso aussieht wie die vom 16-bit timer. (wenn das überhaupt geht) schließlich werden im datenblatt ja 6 PWM-channels angegeben, sind die wirklich alle unabhängig von einander regelbar?
sam wrote: > ich grabe diesen thread mal wieder aus, da ich versuche mit einem µC > soviele wie möglich PWM's laufen zu lassen. Warum machst Du keinen neuen Thread auf? > aber für die 8bit-timer gibt es kein ICR-register. > ich wollte wissen, wie ich mit den 8 bit-timern eine PWM-erzeuge, die > genauso aussieht wie die vom 16-bit timer. (wenn das überhaupt geht) > schließlich werden im datenblatt ja 6 PWM-channels angegeben, sind die > wirklich alle unabhängig von einander regelbar? Nein, natürlich nicht. Zu jedem Timer gehören zwei PWM-Kanäle, deren Signale immer die gleiche Frequenz haben. Die Compare-Werte selbst sind natürlich für alle 6 Kanäle unabhängig einstellbar. Da es bei den 8-Bit-Timern tatsächlich kein separates Register für den TOP-Wert gibt, muss man, wenn man jeweils beide Kanäle nutzen will, einen PWM-Modus mit fest eingestelltem TOP-Wert (also eine 8-Bit-PWM) nehmen.
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.