Zitat Zitat von Kaiser-F
Normal genügen folgende Zeilen um ein Servo anzusteuern:

(mit 8MHz µC-Frequenz)
Code:
#include <io.h>

{

// den entsprechenden Pin muss man glaub ich als Ausgang definieren, nicht vergessen

TCCR1A = (1<<WGM11)|(1<<WGM10)|(1<<COM1A1); //10BIT PWM aktivieren
TCCR1B = (1<<CS11); //Vorzähler 8 also CK/8

for (;;) {

OCR1A = "Wert";  // wert liegt zwischen 50 und 150 (Vollausschläge)

}}
Hallo

Bitte um Hilfe, irgendwo habe ich einen Denkfehler.
Ich würde gerne die Hardware PWM vom Mega8 verwenden um 2 Servos anzusteuern.
Leider habe ich aber keinen 8Mhz Quarz verwendet, sondern einen mit 16Mhz.
Mit dem obrigen Code funktioniert es zwar, aber das Servo läßt sich nicht in der Geschwindikeit ändern, es dreht sich mMn immer gleich schnell, egal welchen Wert ich in OCR1A verwende.
Außerdem bräuchte ich einen Prescaler von 16, anstelle von 8 dies ist aber auch nicht möglich, weil nach 8 der nächste Wert 64 ist.

Bitte um Hilfe.

LG
Rubi