Forum: Mikrocontroller und Digitale Elektronik mehrere PWM Ausgänge am mega88 verwenden


von Thomas (Gast)


Lesenswert?

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.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

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.

von sam (Gast)


Lesenswert?

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?

von Johannes M. (johnny-m)


Lesenswert?

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