Forum: Mikrocontroller und Digitale Elektronik hab ich den CTC-Mod begriffen oder nicht?


von Rolf H. (flash01)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.