ArduinoVariablePWMFrequenz: Unterschied zwischen den Versionen
Zeile 52: | Zeile 52: | ||
Im Code schreibt man dann für eine Frequenz von 31372 Hz: | Im Code schreibt man dann für eine Frequenz von 31372 Hz: | ||
<pre> TCCR1B = TCCR1B & 0b11111000 | 0x01; </pre> | <pre> TCCR1B = TCCR1B & 0b11111000 | 0x01; </pre> | ||
+ | |||
+ | |||
+ | |||
+ | Möchte man jede x-beliebige Frequenz zu der ein Arduino fähig ist erzeugen, wird es schnell kompliziert. Man muss sich ausgiebig mit dem Datenblatt und dem inneren Aufbau der Timer/Counter auseinander setzen. | ||
+ | |||
+ | Timer unterscheiden sich grundlegend in ihrer Bit-Tiefe bzw. Auflösung. Es gibt 8 bit (256) und 16 bit (65.536) Timer. | ||
+ | Zum Verständnis nochmal die PWM als Diagramm mit Periode und Duty Cycle. | ||
+ | |||
+ | [[Datei:Period_DutyCycle_Flank.PNG]] [[Datei:Periods_1Second.PNG]] |
Version vom 2. November 2017, 21:25 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;
Möchte man jede x-beliebige Frequenz zu der ein Arduino fähig ist erzeugen, wird es schnell kompliziert. Man muss sich ausgiebig mit dem Datenblatt und dem inneren Aufbau der Timer/Counter auseinander setzen.
Timer unterscheiden sich grundlegend in ihrer Bit-Tiefe bzw. Auflösung. Es gibt 8 bit (256) und 16 bit (65.536) Timer. Zum Verständnis nochmal die PWM als Diagramm mit Periode und Duty Cycle.