Software-PWM ist sehr einfach.
Du lässt den Timer mit einer Frequenz Deiner PWM-Wahl laufen. 10kHz, oder 1kHz, aber viel weniger eher nicht.
Dann macht dieser Timer zuerst eine Hochzählung einer Variable.
Diese Variable muss beim Erreichen von 100 wieder auf 0 gesetzt werden.
Und unten drunter machst Du einfach sowas hier:
Code:
if (PWM_SOLL_WERT > LAUFENDE_VARIABLE)
then PORTB.3 = 0
else PORTB.3 = 1
Das wars. Bei Verständnisproblemen einfach fragen.
Vorteil dieser Lösung ist, wenn die PWM auf 0 steht, dann geht der Port-Pin nie auf HIGH, d.h. 0.00V!
Lesezeichen