Also wie gesagt, von Bascom versteh ich nichts. Aber so wie ich das sehe verwendest du nur den TimerCounter 1, da ist der TimerCounter 0 ja noch frei, mit dem kannst du Etwas anfangen.
Das du da im Programm 200ms wartest ist egal weil alles in Interrupts abläuft.
Du stellst deinen TCNT0 so ein dass er einmal bei Overflow und einmal beim Compare-Match mit dem CompareRegister einen Interrupt wirft.
Weiters wär bei 8Mhz ein Prescaler von 64 angebracht weil man damit über das Output-Compare-Register Zeiten bis 2,048ms abdecken kann.(Es ist spät kann mich auch verrechnet haben)
Wenn du nun in das Output-Compare-Register Werte zwischen 128 und 255 reinschreibst betragen die zeiten zwischen Overflow-Interrupt und Output-Compare-Interrupt zwischen 1,024 und 2,048ms.
Beinahe genau die Zeiten die wir brauchen.
Du brauchst also abgesehen vom Initialisieren nur in den Output-Compare_Interrupts den Servopin auf LOW zu setzen, in jedem 10ten(zwischen den Pulsen sollten 20ms vergehen) Overflow-Interrupt den Servopin auf High setzen und im Hauptprogramm den Servoausschlag von 0 bis 100% in das OCR-Register in Zahlen von 128 bis 255 Reinschreiben.
Ich weiß aber gerade nicht ob der AVR bei einem OCR-Wert von 255 noch einen OC-Interrupt auslöst, also nimm sicherheitshalber 254 oder so.
Außerdem, den Servo beim testen immer griffbereit halten. Nicht dass er sich selbst zerstört.