Jo, es gibt bessere Lösungen.
Deine Routine der PWM Erzeugung doch etwas ineffizient.

hier mal nen kleines Beispiel, wie man es noch machen könnte:

Code:
clr output
cp cout, pwm
ror output
out PORTB, output
Soll das ganze nun nichtinvertiert ausgegeben werden, sind lediglich 2 weitere Zeilen fällig:

Code:
clr output
cp cout, pwm
ror output
com output
andi output,0b00000001
out PORTB, output
Diese Beispiele gelten allerdings nur, wenn wenn der Rest des Ports nicht belegt ist oder als Eingang definiert wurde (wie in diesem Fall)

Desweiteren hat der Code den Nachteil, das das ganze mit den Werten 0 & 255 nicht so recht funktionieren dürfte ...
Allerdings kann man damit auch mal eben ne 8 Kanal Software PWM realisieren ...

BTW: leg dir nen Tiny 2313 zu .. damit wirste mehr freude haben ... der AT90S2313 zählt zu den Chips, die nicht mehr für neue Designs verwendet werden sollten.


Grüße, da Hanni.