Mit hardware PWM geht für 2 (oder wie viele Kanäle mit hoher Auflösung man hat) Servos ganz einfach. Man stellt einmal den Timer ein auf einen PWM mode, den passenden Vorteiler und die passende Frequenz von ca. 50 Hz. Die PWM Werte für den Motor kann man dann einfach in die OCR1x Register schreiben. Sieht dann ungefähr so aus (hier für Mega88 mit 8MHz)
Code:
// timer 1 auf fast PWM, top = ICP , CLK / 8 (für Servos)
TCCR1A = (1<<COM1A1)+(1<<COM1B1)+(1<<WGM11);
TCCR1B = (1<<CS11)+(1<<WGM12)+(1<<WGM13);
ICR1 = 50000;
OCR1A = motorstop1; // motor aus (Konstante fuer stop)
OCR1B = motorstop2;
Lesezeichen