ArduinoVariablePWMFrequenz: Unterschied zwischen den Versionen
Aus Hackerspace Ffm
(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.
Die wichtigen bits sind CS12, CS11 und CS10 die mit dem Ausdruck CSn2:0 zusammengefasst werden.
Im Code schreibt man dann für eine Frequenz von 31372 Hz:
TCCR1B = TCCR1B & 0b11111000 | 0x01;