Änderungen

Aus Hackerspace Ffm
Wechseln zu: Navigation, Suche

ArduinoVariablePWMFrequenz

37 Byte hinzugefügt, 20:49, 2. Nov. 2017
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|800px]]
Die wichtigen bits sind CS12, CS11 und CS10 die mit dem Ausdruck CSn2:0 zusammengefasst werden.
[[Datei:CSn2-0_ClockSelect.PNG|800px]]
Im Code schreibt man dann für eine Frequenz von 31372 Hz:
Timer haben verschiedene Modi.
[[Datei:WaveformGenerationModeBitDescription.PNG|800px]]
Wir entscheiden uns für den Modus 14 Fast PWM mit ICRn als TOP.
Eingestellt wird er über die Bits WGMn0:3 die sich über die Register TCCRnA und TCCRnB verteilen.
[[Datei:TCCR1A.PNG|800px]] [[Datei:TCCR1B.PNG|800px]]
Da können wir uns auch gleich den Rest des Registers TCCR1A anschauen.
Die bits COM1A0:1, COM1B0:1 und COM1C0:1 kontrollieren das Verhalten der Output Compare Pins OCnA, OCnB und OCnC (Stehen in den Pinoutdiagrammen) .
Stehen die bits auf 0, arbeitet der Port normal und unsere anderen Einstellungen haben keinen Effekt. Wir wählen hier 1 0 für inverting. Alles weitere später.
[[Datei:COMnx0-1.PNG|800px]]
Also pin OC1A (pin 11) auf inverting mode und am Ende WGM01:11.
688
Bearbeitungen