Hi alle miteinander,

ich bin ein absoluter Anfänger in der Mikrocontrollerprogrammierung.
Für meine Bachelorarbeit habe ich ein Programm geschrieben, das analoge Spannungswerte per ADC-Wandlung einliest und abhängig von diesen ein PWM Signal ausgibt, mit dem LEDs gedimmt werden können.
Mit angeschlossenen LEDs bekomme ich ein nettes Ergebnis, alles wie es sein soll.

Nun habe ich zur Dokumentation ein Oszi angeschlossen und das PWM Signal in Abhängigkeit von der Eingangsspannung am ADC aufgezeichnet.
Für beide Hardware PWM Methoden(habe Fast- und Phase-correct benutzt) bekomme ich einen wunderbaren linearen Verlauf von Tastgrad zu Eingangsspannung heraus.
Beim Software PWM zeigt sich ein exponentieller Verlauf. Bei genauerem Nachsehen fiel mir auf, dass sich bei kleineren Eingangsspannungen am ADC Pin die Periodendauer des Software-PWM Signals verlängert.
Was nun die Frage aufkommen lässt, woran kann das liegen?

Ich kann einfach keine Erklärung finden und muss Montag meine Verteidigung der Bachelorarbeit abhalten. Dort wird mit Sicherheit jemandem auffallen, dass ich mich um die Begründung bisher ein wenig gedrückt habe und natürlich möchte ich da dann nicht Ideenlos stehen... >.<

Kann mir evtl noch jemand erklären, wie ich die tolle Code-Box erstelle? Dann werde ich da meinen Quellcode reintexten damit ihr sehen könnt, was ich da fabriziert habe. Bis dahin...Ich habe für das Software PWM einen ähnlichen Code, wie hier auf RN-Wissen unter Pulsweitenmodulation-Software Pulsweitenmodulation beschrieben verwendet (For-Schleife zählt und If Bedingungen für High/Low)

Ich wäre euch mega dankbar, wenn ihr mir bis Montag noch helfen könntet!