Hallo Leute, Nun habe ich mich jeden Tag mit der Pulsweitenmod. beschäftigt. Ich meine die Fast PWM bzw. Phase Correct-PWM am Tiny 13 (Timer 0) begriffen zu haben, stellt sich für mich die Frage, ob ich den CTC - Mod (was ja keine PWM ist) auch richtig im Griff habe. Bevor ich also ein Servo bewege, wollte ich erst mal mit den verschied. Modis Klarheit schaffen. Hier der Code, evtl. für manchen Anfänger ganz hilfreich. Bitte schreibt mir, wenn noch Fehler in den Kommentaren bzw. der Programmstruktur sind. ;Projekt: Projekttiny 13 Datum: 13.04.2013 ; Datei: CTC-MOD2-0A.asm ; Mode 2 = CTC (Takt nur für Outp. PB0=OC0A) ; je kleiner der Wert im Compare-Reg. OCR0A, je höher die Frequ. ; Beispiel: 1,2MHz / 2 x N x (1+OCR0A) = 1,2/202 = 5,94 KHz ; N = Prescale im Beispiel 1 ; sichtbares Impuls- Pausenverhältnis über Skop immer 1:1 .include "tn13def.inc" .def akku = r16 ; Takt an PB0 (Pin OC0A) Periode = 0,168 ms ldi akku,(1<<COM0A0) | (1<<WGM01) out TCCR0A,akku ldi akku,(1<<CS00) ; no Prescale out TCCR0B,akku .equ Wert=100 ; Wert für OCR0A | an PB0 (OC0A) ldi akku,(1<<PB1) | (1<<PB0) out DDRB,akku ; PB1+PB0 = Output ldi akku,Wert ; Wert für OCR0A laden =100 out OCR0A,akku ; und in Output Compare Register A laden loop: rjmp loop ; Endlosschleife .EXIT
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.