So was macht man bei den AVRs mit dem CTC-Modus*. Dann ist es nicht
erforderlich, das Timerregister TCNT0 nachzuladen. Allerdings ist ein
Interrupt, der alle 16 Taktzyklen auftritt, absolut tödlich für das
System, da allein der Overhead eines Interrupt-Handlers mehr als 16
Takte in Anspruch nimmt. Da wirst Du Dir etwas anderes einfallen lassen
müssen**.
* CTC heißt "Clear Timer on Compare match", d.h., es wird die
Compare-Einheit des Timers benutzt und das Timer-Zählregister
zurückgesetzt, wenn eine Übereinstimmung mit dem Compare-Wert auftritt.
** Da Du in der Interrupt-Routine allerdings gar nichts machst, ist das
ganze eh sinnfällig, so wie es da steht. Erzähl mal, was da überhaupt
jede µs gemacht werden soll. Wenn nur ein Signal mit einer bestimmten,
in 1 µs-Schritten einstellbaren Periodendauer erzeugt werden soll, dann
brauchst Du gar keinen Interrupt. Das kann der Timer hardwaremäßig.
OHA, ich sehe gerade, dass Timer 0 beim Mega8 überhaupt keine
Compare-Einheit hat (gut, dass ich noch ins Datenblatt geschaut hab)!
Hast Du keine Möglichkeit, Timer 1 dafür zu nehmen oder einen Mega88
anstelle des Mega8?