52 #ifndef __GR55XX_LL_DUAL_TIMER_H__
53 #define __GR55XX_LL_DUAL_TIMER_H__
62 #if defined (DUAL_TIMER0) || defined (DUAL_TIMER1)
118 #define LL_DUAL_TIMER_FREERUNNING_MODE 0x00000000U
119 #define LL_DUAL_TIMER_PERIODIC_MODE DUAL_TIMER_CTRL_MODE
125 #define LL_DUAL_TIMER_PRESCALER_DIV0 0x00000000U
126 #define LL_DUAL_TIMER_PRESCALER_DIV16 (1UL << DUAL_TIMER_CTRL_PRE_Pos)
127 #define LL_DUAL_TIMER_PRESCALER_DIV256 (2UL << DUAL_TIMER_CTRL_PRE_Pos)
133 #define LL_DUAL_TIMER_COUNTERSIZE_16 0x00000000U
134 #define LL_DUAL_TIMER_COUNTERSIZE_32 DUAL_TIMER_CTRL_SIZE
144 #define DUAL_TIMER_DEFAULT_CONFIG \
146 .prescaler = LL_DUAL_TIMER_PRESCALER_DIV0, \
147 .counter_size = LL_DUAL_TIMER_COUNTERSIZE_32, \
148 .counter_mode = LL_DUAL_TIMER_PERIODIC_MODE, \
149 .auto_reload = SystemCoreClock - 1, \
171 #define LL_DUAL_TIMER_WriteReg(__instance__, __REG__, __VALUE__) WRITE_REG(__instance__->__REG__, (__VALUE__))
179 #define LL_DUAL_TIMER_ReadReg(__instance__, __REG__) READ_REG(__instance__->__REG__)
213 SET_BITS(DUAL_TIMERx->CTRL, DUAL_TIMER_CTRL_EN);
232 CLEAR_BITS(DUAL_TIMERx->CTRL, DUAL_TIMER_CTRL_EN);
251 return (READ_BITS(DUAL_TIMERx->CTRL, DUAL_TIMER_CTRL_EN) == (DUAL_TIMER_CTRL_EN));
273 MODIFY_REG(DUAL_TIMERx->CTRL, DUAL_TIMER_CTRL_MODE, counter_mode);
294 return (READ_BITS(DUAL_TIMERx->CTRL, DUAL_TIMER_CTRL_MODE));
317 MODIFY_REG(DUAL_TIMERx->CTRL, DUAL_TIMER_CTRL_PRE, prescaler);
339 return (READ_BITS(DUAL_TIMERx->CTRL, DUAL_TIMER_CTRL_PRE));
361 MODIFY_REG(DUAL_TIMERx->CTRL, DUAL_TIMER_CTRL_SIZE, counter_size);
382 return (READ_BITS(DUAL_TIMERx->CTRL, DUAL_TIMER_CTRL_SIZE));
401 SET_BITS(DUAL_TIMERx->CTRL, DUAL_TIMER_CTRL_ONESHOT);
420 CLEAR_BITS(DUAL_TIMERx->CTRL, DUAL_TIMER_CTRL_ONESHOT);
439 return (READ_BITS(DUAL_TIMERx->CTRL, DUAL_TIMER_CTRL_ONESHOT) == (DUAL_TIMER_CTRL_ONESHOT));
458 return (uint32_t)(READ_REG(DUAL_TIMERx->VALUE));
479 WRITE_REG(DUAL_TIMERx->RELOAD, auto_reload);
498 return (uint32_t)(READ_REG(DUAL_TIMERx->RELOAD));
518 WRITE_REG(DUAL_TIMERx->BG_LOAD, background_reload);
537 return (uint32_t)(READ_REG(DUAL_TIMERx->BG_LOAD));
562 SET_BITS(DUAL_TIMERx->CTRL, DUAL_TIMER_CTRL_INTEN);
581 CLEAR_BITS(DUAL_TIMERx->CTRL, DUAL_TIMER_CTRL_INTEN);
600 return (READ_BITS(DUAL_TIMERx->CTRL, DUAL_TIMER_CTRL_INTEN) == (DUAL_TIMER_CTRL_INTEN));
626 WRITE_REG(DUAL_TIMERx->INTCLR, DUAL_TIMER_INT_CLR);
645 return (READ_BITS(DUAL_TIMERx->INTSTAT, DUAL_TIMER_ISR_TI) == (DUAL_TIMER_ISR_TI));
664 return (READ_REG(DUAL_TIMERx->RAW_INTSTAT));