Hallo,
Vielen Dank an euch beiden für eure Tipps und Codes.
Hebe nun das ganze in Gang gebracht!
Die ursache war diese zeile:
TCCR1A = (1<<PWM11)|(1<<PWM10)|(1<<COM1A1);
PWM ist anscheinend falsch, muss WGM heissen, also:
TCCR1A = (1<<WGM11)|(1<<WGM10)|(1<<COM1A1);
Hab ich aus Pebisoft's Code gefolgert.
Der lange Code von Pebisoft lässt sich durch die Defines begründen, die eine Headerdatei darstellen, um die PWM"Befehle" zu vereinfachen.
Wer sein PWM-Signal oft ändert, für den ist das sehr Vorteilhaft!
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)
}}
Die Softwarelösung werd ich mir noch anschauen!
MfG
Lesezeichen