Ist mir jetzt zu aufwändig, den ganzen Treat exakt zu lesen. Ich überfliege nur mal deinen Quellcode. Ergebnis: Ich bin irgendwie zu dumm dafür...

Rechteck. richtig? Was spricht denn dagegen die ganze Timing von der Hardware machen zu lassen. Schau dir mal den CTC (Clear Timer on Compare Match) Mode an. Da kannste alle Alle Frequenzen bis CPUFrequenz/2 erzeugen... Also Theoretisch dürfste bis 10 Mhz Tack kommen...

Außerdem würde ich sehr driftig von Bascom oder wie sich diese Sprache schimpft abraten... Die Sprache ist Langsam und absolut nicht portierbar...