PWM/Frequenz bei ATMega

Gast #5635835
Lesenswert?

Hi,

ich grabe mich gerade ein wenig durch die Sourcen von GRBL und bin dabei 
auf ein Set Defines gestoßen, in dem die Frequenz für den PWM-Ausgang in 
4 Stufen vorgegeben werden kann:
1
  #define SPINDLE_TCCRA_INIT_MASK   ((1<<WGM20) | (1<<WGM21))  // Configures fast PWM mode.
2
  // #define SPINDLE_TCCRB_INIT_MASK   (1<<CS20)               // Disable prescaler -> 62.5kHz
3
  // #define SPINDLE_TCCRB_INIT_MASK   (1<<CS21)               // 1/8 prescaler -> 7.8kHz (Used in v0.9)
4
  // #define SPINDLE_TCCRB_INIT_MASK   ((1<<CS21) | (1<<CS20)) // 1/32 prescaler -> 1.96kHz
5
  #define SPINDLE_TCCRB_INIT_MASK      (1<<CS22)               // 1/64 prescaler -> 0.98kHz (J-tech laser)

Verwendet wird dieser Wert dann mit dem Register TCCR2B.

Meine Frage: ist es tatsächlich so, dass man beim ATMega die 
PWM-Ausgänge nur mit einigen wenigen, festen Frequenzen betreiben kann 
oder ist das eine Einschränkung von GRBL und ich kann diese Frequenz 
auch in deutlich kleineren Abstufungen (z.B. auf 1 Hz genau) einstellen?

Danke!
(Firma: matzetronics) #5635838
Lesenswert?

Zaphod schrieb:
> (z.B. auf 1 Hz genau)

Das wird nicht gehen.
Allerdings unterstützen so gut wie alle AVRs den Fast PWM und Phase 
Correct PWM Modus mit TOP in einem Register (ähnlich wie die CTC 
Funktionalität), so das man die Wiederholfrequenz damit einstellen kann. 
Allerdings verliert man Auflösung. Lässt man den Timer z.B. statt bis 
256 nur bis 128 zählen, verringert sich die Auflösung auf 7 Bit bei 
doppelter PWM Frequenz.

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