Ich würde nur mit Integer arbeiten und nicht mit Prozent und Float. Du kannst es aber so machen wie du willst.

Was ich nicht ganz verstehe ist warum du den Pin immer auf Ausgang setzt. Eigentlich reicht einmal.

Was du testen kannst ist einfach einmal die PWM erhöhen. Die PWM konfigurieren und mit einem Zähler erhöhst du den PWM Wert (0-Max).

Kannst du die PWM messen?

Die Konfiguration des Timers sollte passen.

MfG Hannes