Gast
#335398
Hallo! Ich habe ein kleines Problem mit PWM. Ich möchte einen Servo ansteuern, der benötigt einen Zykluszeit von 20ms. Gut, habe ich mir gedacht, nimmst du den 16bit Timer, nimmst den Betriebsmodus 15 (Seite 97 im Datenblatt) wo man TOP durch OCR1A einstellen kann. Diesen habe ich auf 20000 gesetzt, damit habe ich genau die richtige Frequenz. Nun aber das Problem, mit welchem Register kann ich nun den Wert einstellen, bei dem der OCnx Ausgang am AtMega8 auf high (bzw. auf low falls invertiert) gesetzt wird? Hat schon mal jemand diesen PWM-Betriebsmodus gebraucht und hat ein Codebeispiel? bei mir zählt momentan der Timer im Simulator man hoch mal runter, aber nicht imme hoch und dann wenn er oben ist wieder von unten her. Initialisiert habe ich den Timer1 so: ;set to fast PWM ldi temp1, 0b10100011 ;clear on compare match, set on TOP, ... out TCCR1A, temp1 ldi temp1, 0b00011001 ;internal clock, no prescaler, ... out TCCR1B, temp1 ;set TOP to 20000 ldi temp1, 0b00100000 ldi temp2, 0b01001110 out OCR1AH, temp2 out OCR1AL, temp1 Für jede Art von Hilfe bin ich sehr dankbar