erstmal vielen Dank für Eure Mühe.

Jetzt ist es so, dass ich das Programm direkt übernehmen könnte, aber ich möchte es auch verstehen um daraus zu lernen
Im ersten Block hast du die Variablen Definiert, dass Sie werte zwischen 0 und 255 haben , ok das ist mir klar
Danach hast du den Internen Timer 0 konfiguriert. ok ist auch klar.
Dann hast du pro Bit definiert bei welchem Takt der Port auf 1 gesetzt ist und im nächsten Teil wie viele Takte es pro Ausgang gibt wobei mir beim Bitarry die Bedeutung der Klammer nicht klar ist

Im nächsten Teil wird das es dann ganz schwierig für mich. Es beginnt die Schleife und dann kommt die If Abfrage für das Changestate, das weiter unten gebildet wird. Den Incr Bit0 sagt mir gar nichts
wenn du mir den teil
" Incr Bit0
If Bit0 > Bit0_max Then Bit0 = 1
Port_c.0 = Bit0_array(bit0) "
noch erklären könntest wäre es klasse.

Wobei die Bildung des Changssteate mit dem Timer_ISr mir etwas unklar ist genau wie die Bildung des Bit0

Gruß Martin