linux_80
25.06.2006, 02:46
Hallo,
ich hab jetzt (wieder)mal mit Bascom und einem Servo rumprobiert,
ich hab die Demo 1.11.8.1, auf dem RN-MiniCtrl, und RN-M8.
Dabei ist mir aufgefallen, dass ein Servo, zwischendurch immer mal kurz Aussetzer hatte, man konnte ihn per Hand verdrehen, nur ganz kurz (da hab ich wohl auch einen Servo erwischt, der das etwas genauer nahm, denn nicht bei allen die ich hier hab war das so),
deshalb hab mir mal angeschaut, was Bascom so macht mit dem PWM-Signal.
Beim messen mit dem Oszi, ist mir aufgefallen, das das mit den 20ms nicht so ganz hinhaut, denn die Periodendauer ist länger als 20 ms. Das ist auch abhängig vom Takt des AVR, bei 16MHz war die Periode ca. 25ms, bei 7,3MHz schon mind. 30ms.
Als nächstes hab ich mir den Code angeguckt, bei 16MHz wird der 8-Bit Timer0 mit 97 vorgeladen, was ca. 10µs entspricht.
In der Timer-Overflow-ISR wird dieser Wert aber erst ganz zum Schluss wieder geladen, bevor die ISR beendet wird.
Da ich schon mal davon gelesen habe das es zu Problemen kommt, wenn man mehrere Servos betreibt (ab 8, glaub ich), kann das doch etwas damit zu tun haben :-k
Vielleicht kann das mal jemand nachvollziehen !?
Auf die Seite von MCS (http://www.mcselec.com/) komme ich grad nicht drauf, denn dann hätte ich versucht herauszufinden ob sich seit 11.8.1 was in der Richtung getan hat.
ich hab jetzt (wieder)mal mit Bascom und einem Servo rumprobiert,
ich hab die Demo 1.11.8.1, auf dem RN-MiniCtrl, und RN-M8.
Dabei ist mir aufgefallen, dass ein Servo, zwischendurch immer mal kurz Aussetzer hatte, man konnte ihn per Hand verdrehen, nur ganz kurz (da hab ich wohl auch einen Servo erwischt, der das etwas genauer nahm, denn nicht bei allen die ich hier hab war das so),
deshalb hab mir mal angeschaut, was Bascom so macht mit dem PWM-Signal.
Beim messen mit dem Oszi, ist mir aufgefallen, das das mit den 20ms nicht so ganz hinhaut, denn die Periodendauer ist länger als 20 ms. Das ist auch abhängig vom Takt des AVR, bei 16MHz war die Periode ca. 25ms, bei 7,3MHz schon mind. 30ms.
Als nächstes hab ich mir den Code angeguckt, bei 16MHz wird der 8-Bit Timer0 mit 97 vorgeladen, was ca. 10µs entspricht.
In der Timer-Overflow-ISR wird dieser Wert aber erst ganz zum Schluss wieder geladen, bevor die ISR beendet wird.
Da ich schon mal davon gelesen habe das es zu Problemen kommt, wenn man mehrere Servos betreibt (ab 8, glaub ich), kann das doch etwas damit zu tun haben :-k
Vielleicht kann das mal jemand nachvollziehen !?
Auf die Seite von MCS (http://www.mcselec.com/) komme ich grad nicht drauf, denn dann hätte ich versucht herauszufinden ob sich seit 11.8.1 was in der Richtung getan hat.