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?