AVR Timer/Counter Compare Value

OP #7415575
Lesenswert?
• ▲
▼

Hallo, ich bin etwas verwirrt. Könnte bitte jemand überprüfen, ob es tatsächlich diesen Unterschied zwischen den neuen und den alten AVRs gibt?

1
 TCA0.SINGLE.PER = 9;   // 10 clock cycles (period)
2
 TCA0.SINGLE.CMP0 = 5;  //  5 clock cycles (pulse width)
1
 OCR1A = 9;       // 10 clock cycles (period)
2
 OCR1B = 4;       //  5 clock cycles (pulse width)

(Single-slope PWM)

Gast #7415578
Lesenswert?
• ▲
▼

Die Timer waren noch nie exakt gleich. Welche Modelle meinst du denn genau?

Am besten antwortest du mit Links zu deren Datenblättern, und bei der Gelegenheit kannst du sie auch gleich selbst lesen. Die Registernamen sind darin ja leicht zu finden.

#7415621
Lesenswert?
• ▲
▼

Ja, ist so, z.B. auf einem ATmega4809 für Tastgrad 0.5:

1
  sbi     VPORTA_DIR,0                        ; WO0
2
  puti    TCA0_SINGLE_CTRLA,1                 ; enable
3
  puti    TCA0_SINGLE_CTRLB,0b0_0_0_1_0_011   ; CMP0EN, Single-slope PWM
4
  putiw   TCA0_SINGLE_PER,9                   ; 10 clock cycles (period)
5
  putiw   TCA0_SINGLE_CMP0,5                  ;  5 clock cycles (pulse width)

Steht im Datenblatt etwas Gegenteiliges?

#7415683
Lesenswert?
• ▲
▼

Okay, zugegeben, mag für einen 'alten Hasen' etwas irritierend sein, ist aber z.B. beim TCB genauso:

1
  sbi     VPORTA_DIR,2                        ; 0-WO
2
  puti    TCB0_CTRLA,1                        ; enable
3
  puti    TCB0_CTRLB,0b0_0_0_1_0_111          ; CCMPEN, 8-Bit PWM mode
4
  puti    TCB0_CCMPL,7                        ; period
5
  puti    TCB0_CCMPH,4                        ; duty cycle 0.5
#7415710
Lesenswert?
• ▲
▼

Hallo,

die Bedeutung der Einstellungen sind ja immer ungefähr gleich. Geändert hat sich im Vergleich zu den alten ATmegas nur der Registeraufbau und eben die Namen der Register. Wenn man die alten Timer kennt, kennt man recht schnell die Neuen. Die App Notes "Getting Start with ..." helfen auch dabei.

1
>  TCA0.SINGLE.PER = 9;   // 10 clock cycles (period)
2
>  TCA0.SINGLE.CMP0 = 5;  //  5 clock cycles (pulse width)
3
>
1
>  OCR1A = 9;       // 10 clock cycles (period)
2
>  OCR1B = 4;       //  5 clock cycles (pulse width)
3
>

Der Vergleich passt insoweit schon.

#7415713
Lesenswert?
• ▲
▼

Georg M. schrieb:

OK, danke, und was ist mit den alten AVRs? (z.B. ATmega328P Timer/Counter1) Ich kann im Datenblatt auch nichts darüber finden, und dennoch muss Compare Value um 1 kleiner sein. Oder irre ich mich?

Dazu musst du die dir Formeln der jeweiligen Timer-Modes im Manual anschauen. Dafür gibt es keine pauschale Formel für alles. Gab es vorher nicht und gibt es jetzt auch nicht. Die App Notes "Getting Start with ..." helfen auch dabei.

#7415768
Lesenswert?
• ▲
▼

Mit etwas Mühe lässt es sich finden, zum Beispiel:

ATmega328P Timer1: If TCNT equals OCR1x the comparator signals a match. A match will set the Output Compare Flag (TIFR1.OCFx) at the next timer clock cycle.

ATmega4809 TCB 8-Bit PWM Mode: CCMPH is the number of cycles for which the output will be driven high. CCMPL+1 is the period of the output pulse.

Gast #7416041
Lesenswert?
• ▲
▼

Falk B. schrieb:

Ja, das ist aber immer noch so, auch auf anderen CPUs. Denn die Zähler zählen immer (meistens?) von 0-N, macht eine Periode von N+1 Takten.

Ich glaube du hast da etwas anderes im Sinn, als worum es hier geht.

Der TO will, dass der Komparator 10 Takte nach dem Start ausgelöst wird. Wenn ich bei 0 anfange und dann 10x erhöhe, bin ich bei 10. Dennoch muss er 9 konfigurieren.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.