Hallo MueThoS,
An und für sich ist das so eine richtiger Software-PWM oder?
Ja, das geht als Software-PWM durch, funktioniert aber so noch nicht ganz. In der ISR (Pwm_isr) würde ich die Ports nicht gezielt Setzen/Zurücksetzen, sondern Toggeln (Toggle Portd.x), wenn ein bestimmter Wert (Dimmer, Kontrast) erreicht ist. Der Sinn ist ja, dass der Port nicht in jeder ISR getoggelt wird, sondern nur in der Dimmer-tsten oder Kontrast-sten ISR. Wenn dann der Wert erreicht ist, muss der zugehörige Zähler auf 0 gesetzt werden. Letztlich braucht man dann auch 2 Zähler, die man getrennt voneinander in der ISR zurücksetzen kann.

In der jetzigen Version kannst du die Zeile "If Timercounter = 255 Then Timercounter = 0" weglassen, weil bei 255 + 1 wieder 0 erreicht ist.

Gruß Dirk