Einfacher Zähler mit dem Timer tiny814 oder tin817

OP #6482860
Lesenswert?
• ▲
▼
Hallo Liebe Mikrocontroller Freunde,

ich möchte einen der Timer (TCA, TCB oder TCD) des tiny814 nutzen um SW 
Laufzeiten zu messen.

Leider bin ich kein Timer Experte und habe ein paar sachen ausprobiert, 
leider ohne Erfolg. Hier habe ich ein Beispiel mit dem TCB:

TCB0.CTRLB = TCB_CNTMODE_TIMEOUT_gc;
TCB0.CNT=0xABCD;
TCB0.CTRLA = TCB_CLKSEL_CLKDIV1_gc | 0x01; /* CLK_PER (No Prescaling) */
_delay_us(1);
uint16_t Count = TCB0.CNT;
printf("CNT: %x\n",Count);

Mit TCB0.CTRLB habe ich folgende vier Modi ausprobiert:

//TCB_CNTMODE_INT_gc = (0x00<<0),  /* Periodic Interrupt */
//TCB_CNTMODE_TIMEOUT_gc = (0x01<<0),  /* Periodic Timeout */
//TCB_CNTMODE_CAPT_gc = (0x02<<0),  /* Input Capture Event */
//TCB_CNTMODE_SINGLE_gc = (0x06<<0),  /* Single Shot */

Nach dem Start mit TCB0.CTRLA = TCB_CLKSEL_CLKDIV1_gc | 0x01; lese ich 
den Tmer Inhalt Count = TCB0.CNT; aus und erhalte immer abcd. Es tut 
sich also nichts. Eigenlich müsste der Timer doch hoch oder runter 
zählen nach dem Enable vom CTRLA Register?
OP #6483141
Lesenswert?
• ▲
▼
Georg M. schrieb:
> Max T. schrieb:
>> TCB0.CNT=0xABCD;
>
> TCB0.CCMP =

Danke für den Hinweis, das hatte ich nicht ausprobiert, da ich nichts 
vergleichen wollte, nur

(SW)start--->(zählen)--->(HW)Stop sonst nichts, kein Interrupt kein 
compare, kein überlauf

...und dann die Steps anzeigen, habe ich den CCMP register nicht 
benutzt. Habe es aber gerade ausprobiert. Funktioniert leider nicht.

Damit geht's aber:
TCB0.CTRLB = TCB_CNTMODE_INT_gc;
TCB0.CNT=0;
TCB0.CTRLA = TCB_CLKSEL_CLKDIV1_gc | 0x01; // Enable CLK_PER (No 
Prescaling)
_delay_us(8);
_cnt = TCB0.CNT;
printf("8us =  %d counts \n",_cnt);
TCB0.CTRLA = 0x00; /* Disable */

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 5 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.