Forum: Mikrocontroller und Digitale Elektronik Arduino PWM über 62 KHz ?


von Questioner (Gast)


Lesenswert?

Hallo,

Ich steuere mit der Arduino-PWM einen Step Down Wandler.
Grundsätzlich alles OK.
Ich würde gern mit der Frequenz höher gehen.
Wenn man akzeptiert, das die PWM Auflösung von 256 auf 128 fällt, sollte 
das möglich sein.
Es sieht nur nicht so aus.
Ist das machbar- Falls ja, wie?

Q.

von Mick (Gast)


Lesenswert?

z.B. diese Konfiguration setzt die PWM Frequenz von Pin 3 auf 100kHz. 
PWM an Pin 11 kann dann aber nicht mehr verwendet werden:
1
void setup(){
2
  pinMode (3, OUTPUT) ;
3
  TCCR2A = 0x23 ;
4
  TCCR2B = 0x09 ;
5
  OCR2A = 160-1 ; // 160 clock periods (10us per cycle)
6
  OCR2B =0 ;
7
  TCNT2 =0 ;
8
}

von Questioner (Gast)


Lesenswert?

Hallo Mick,

Funktioniert hervorragend und skaliert auch wie erwartet, wenn ich
OCR2A mit anderen Werten lade.

Danke!
Q.

von Werner P. (Gast)


Lesenswert?

Mick schrieb:
> TCCR2A = 0x23 ;
>   TCCR2B = 0x09 ;

finde ich persönlich nicht gut leserlich. Besser und im Datenblatt 
besser zu finden:

TCCR2A |= (1 << COM2B1) | (1 << WGM21) | (1 << WGM20);
TCCR2B |= (1 << WGM22) (1 << CS20);

von M. K. (sylaina)


Lesenswert?

@Werner:

Ich würde noch das |= in ein = umwandeln, stimme dir aber grundsätzlich 
zu, ein (1 << COM2B1) | (1 << WGM21) | (1 << WGM20) ist einfach klarer 
als ein 0x23. Funktionieren wird natürlich beides.

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.