Wenn man bei 1 MHz Takt den Teiler auf 1024 setzt, hat man pro zeitschritt ca. 1 ms. Bei einem 8 Bit timer und 128 als PWM Wert sollte man dann 128 ms an und 128 ms aus bekommen, bei phasenrichtigem PWM sogar noch doppelt so lange.
So direkt mit der Unterstützung von Bascom aus wird das mit dem PWM auch kaum gehen. Da wird man schon die register von hand Programmieren müssen.


Für die Servo steuerung sollte auch der Code aus dem Wiki-bereich gehen:
http://www.rn-wissen.de/index.php/Servoansteuerung.

So schlecht ist das Beispiel nicht. Mit nur einem 8 Bit timer müßte man aber überlegen die Auflösung des Timers noch etwas erweitern, den man braucht ja pulse von 1-2 ms. Für 2 ms würde ein Timer Takt von 1/8 MHz noch gerade reichen. Wenn man mehr auflösung haben will, müßte man noch zusätzlich die Zahl der Überläufe runterzählen, und erst wenn man da 0 erreicht hat den Code zum umschalten der Pins ausführen.

Ein Problem kann da nur ein weiterer Interrupt für I2C sein. Da sollte man sehen, dass man wenigsten I2C per hardware und ohne Interrupt hinkriegt. So kompliziert sollte das nicht sein, denn man muß ja nur Daten empfangen, nicht senden. Bei 100 kHz I2C Takt hat man ja immerhin 80 µs für eine Byte. So lange sollte die ISR fürs PWM Signal hoffentlich nicht brauchen. Notfalls muß man doch mit mehr als 1 MHz Takt arbeiten.