ArduinoVariablePWMFrequenz: Unterschied zwischen den Versionen

Aus Hackerspace Ffm
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Die standard Frequenz ist 490 Hz, an manchen Pins 980 Hz. Für die meisten Anwendungen ist das ausreichend. Braucht man mehr Auswahl, kann man über den Presca…“)
 
Zeile 43: Zeile 43:
  
 
Eingestellt werden können diese über das Register TCCRnB. Das n steht für den Timer. Also gehört das Register TCCR1B zum Timer 1.
 
Eingestellt werden können diese über das Register TCCRnB. Das n steht für den Timer. Also gehört das Register TCCR1B zum Timer 1.
 +
 +
[[Datei:TCCR1B.PNG]]
 +
 +
Die wichtigen bits sind CS12, CS11 und CS10 die mit dem Ausdruck CSn2:0 zusammengefasst werden.
 +
 +
[[Datei:CSn2-0_ClockSelect.PNG]]
 +
 +
Im Code schreibt man dann für eine Frequenz von 31372 Hz:
 +
<pre> TCCR1B = TCCR1B & 0b11111000 | 0x01; </pre>

Version vom 2. November 2017, 21:23 Uhr

Die standard Frequenz ist 490 Hz, an manchen Pins 980 Hz. Für die meisten Anwendungen ist das ausreichend. Braucht man mehr Auswahl, kann man über den Prescaler sehr einfach weitere Frequenzen zur Verfügung stellen.

Für die 490 Hz Pins gibt es folgende Möglichkeiten:

Teiler Frequenz
1 31.372,55
8 3.921,16
64 490,2
256 122,55
1024 30,64

Für 980 Hz Pins diese:

Teiler Frequenz
1 62.500
8 7.812,5
64 976,56
256 244,14
1024 61,035

Eingestellt werden können diese über das Register TCCRnB. Das n steht für den Timer. Also gehört das Register TCCR1B zum Timer 1.

TCCR1B.PNG

Die wichtigen bits sind CS12, CS11 und CS10 die mit dem Ausdruck CSn2:0 zusammengefasst werden.

CSn2-0 ClockSelect.PNG

Im Code schreibt man dann für eine Frequenz von 31372 Hz:

 TCCR1B = TCCR1B & 0b11111000 | 0x01;