mehrere PWM Ausgänge am mega88 verwenden

Gast #721193
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.
Moderator Persönliche Seite #721220
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.
Gast #1230066
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?
#1230073
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren