hab ich den CTC-Mod begriffen oder nicht?

OP #3127069
Lesenswert?

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.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren