hallo,
der ansatz war schon richtig: du gibst in Bascom einfach den überlauf vor, sodass der timer nach einer bestimmten zeit überläuft und den interrupt auslöst. nach jedem neuen interrupt prüfst du deine aktuelle position und beschleunigst oder verzögerst den ablauf durch änderung des timerwertes, also etwa so:
interrupt:
timer1=newValue
......
-> neuen timerwert berechnen und in newValue speichern
return:
du brauchst auch keine zusätzlichen timer, weil du ja im interrupt eine vektorinterpolation vornehmen kannst, so mache ich das auch. willst du z.b. eine strecke fahren, die in x-richtung 1000 schritte und in y-richtung nur 500 schritte beträgt, wird der motor für die y-achse nur in jedem zweiten interruptaufruf bewegt. such am besten mal nach bresenham-algorithmus, dieser wird eigentlich für die darstellung von linien auf einem bildschirm verwendet, es ist ja das gleiche problem! dieser bietet den vorteil, dass die vektorinterpolation auf integerbasis berechnet wird und er daher sehr schnell ist.
übrigens: für die ausgabe weiterer taktsignale hast du ja zwei timer im atmega8 - nur mal so als denkanstoß...
hoffe, ich konnte dir helfen und hab dich nicht nur verwirrt!

Ruppi