ATtiny1614 TCB: Überlauf bei input capture erkennen?

OP #7494231
Lesenswert?
• ▲
▼

Mir scheint, es ist unmöglich, beim ATtiny1614 (und Verwandten) einen Überlauf von TCB0 bzw. TCB1 in den input capture Modi (bei mir: CNTMODE=FRQ) zu erkennen oder gar zuverlässig zu zählen. Offenbar geht das nur mit den ATmega-TCB. Kennt jemand einen Trick, wie man das mit einem ATtiny schafft?

#7494347
Lesenswert?
• ▲
▼

S. L. schrieb:

hat Microchip offenbar den Mangel erkannt und mit der 'tinyAVR® 2 Family' behoben.

Irgendwie lernen die es nie. Statt mal gründlicher nachzudenken und alt bewährtes zu übernehmen, werden wieder mal neue Typen am laufenden Band rausgeschleudert. Ich hatte ja kürzlich erst gefragt, was dieser Typenwildwuchs soll und mal die vielen 8kB 14-Pinner betrachtet.

#7494442
Lesenswert?
• ▲
▼

S. L. schrieb:

Die neuen ATtiny sind ja völlig verrückt ... TCB hat Captureinterrupt, aber kein Overflow.

Wie von Wilhelm M. geschrieben, hat Microchip offenbar den Mangel erkannt und mit der 'tinyAVR® 2 Family' behoben.

Nicht nur das, sondern man hat damit einen 32bit Timer. Und das ist gut, denn bei einem 8bitter kommt es wesentlich auf die Flexibilität der internen Peripherie an.

#7494656
Lesenswert?
• ▲
▼

Peter D. schrieb:

Wilhelm M. schrieb:

Nicht nur das, sondern man hat damit einen 32bit Timer.

Ist dann aber auch ein atomarer Zugriff möglich, d.h. 3 Temp-Register. Ansonsten ist das witzlos und ein Kaskadieren in Software gleichwertig.

Da es ja nur um den Capture-Modus geht, lese ich das DB so, dass tatsächlich hier Kopien der CNT in die CCMP-Register atomar geschieht (zumindest interpretiere ich die Beschreibung des CASCADE-Flags so).

#7494766
Lesenswert?
• ▲
▼

Hallo,

genau, die Übernahme des Zählerstandes erfolgt sicher in Hardware und man liest sie nur noch aus. Wenn man bspw. TCB0 und TCB1 kaskadiert hat

1
ISR(TCB0_INT_vect)
2
{
3
  counter.lsb  = TCB0.CCMP;
4
  counter.msb  = TCB1.CCMP;
5
  // counter.finish = true;
6
  TCB0.INTFLAGS = TCB_CAPT_bm;      // clear the interrupt flag
7
}

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.