Lines Matching refs:timer

72 static void _rt_device_hwtimer_isr(rt_hwtimer_t *timer)  in _rt_device_hwtimer_isr()  argument
74 RT_ASSERT(timer != RT_NULL); in _rt_device_hwtimer_isr()
76 timer->overflow ++; in _rt_device_hwtimer_isr()
78 if (timer->cycles != 0) in _rt_device_hwtimer_isr()
80 timer->cycles --; in _rt_device_hwtimer_isr()
83 if (timer->cycles == 0) in _rt_device_hwtimer_isr()
85 timer->cycles = timer->reload; in _rt_device_hwtimer_isr()
87 if (timer->mode == HWTIMER_MODE_ONESHOT) in _rt_device_hwtimer_isr()
89 if (timer->ops->stop != RT_NULL) in _rt_device_hwtimer_isr()
91 timer->ops->stop(timer); in _rt_device_hwtimer_isr()
95 if (timer->parent.rx_indicate != RT_NULL) in _rt_device_hwtimer_isr()
97 timer->parent.rx_indicate(&timer->parent, sizeof(struct rt_hwtimerval)); in _rt_device_hwtimer_isr()
102 static void timer_init(struct rt_hwtimer_device *timer, rt_uint32_t state) in timer_init() argument
108 RT_ASSERT(timer != RT_NULL); in timer_init()
109 tim = (hal_sfr_t)timer->parent.user_data; in timer_init()
113 tim_device = (struct ab32_hwtimer *)timer; in timer_init()
115 if (timer->info->cntmode != HWTIMER_CNTMODE_UP) in timer_init()
130 static rt_err_t timer_start(rt_hwtimer_t *timer, rt_uint32_t t, rt_hwtimer_mode_t opmode) in timer_start() argument
135 RT_ASSERT(timer != RT_NULL); in timer_start()
137 tim = (hal_sfr_t)timer->parent.user_data; in timer_start()
141 tim[TMRxPR] = t * (get_sysclk_nhz() / timer->freq) - 1; in timer_start()
155 static void timer_stop(rt_hwtimer_t *timer) in timer_stop() argument
159 RT_ASSERT(timer != RT_NULL); in timer_stop()
161 tim = (hal_sfr_t)timer->parent.user_data; in timer_stop()
170 static rt_err_t timer_ctrl(rt_hwtimer_t *timer, rt_uint32_t cmd, void *arg) in timer_ctrl() argument
175 RT_ASSERT(timer != RT_NULL); in timer_ctrl()
178 tim = (hal_sfr_t)timer->parent.user_data; in timer_ctrl()
196 static rt_uint32_t timer_counter_get(rt_hwtimer_t *timer) in timer_counter_get() argument
200 RT_ASSERT(timer != RT_NULL); in timer_counter_get()
202 tim = (hal_sfr_t)timer->parent.user_data; in timer_counter_get()
204 return tim[TMRxCNT] / (get_sysclk_nhz() / timer->freq); in timer_counter_get()