Added get flag and get counter functions to timer. Allow proper interrupt handling and recording timer counter values.
This commit is contained in:
parent
d40fb96fcf
commit
c7587f11ec
@ -855,6 +855,7 @@ enum tim_oc_mode {
|
||||
void timer_reset(u32 timer_peripheral);
|
||||
void timer_enable_irq(u32 timer_peripheral, u32 irq);
|
||||
void timer_disable_irq(u32 timer_peripheral, u32 irq);
|
||||
bool timer_get_flag(u32 timer_peripheral, u32 flag);
|
||||
void timer_clear_flag(u32 timer_peripheral, u32 flag);
|
||||
void timer_set_mode(u32 timer_peripheral, u8 clock_div,
|
||||
u8 alignment, u8 direction);
|
||||
@ -915,5 +916,6 @@ void timer_set_disabled_off_state_in_idle_mode(u32 timer_peripheral);
|
||||
void timer_set_break_lock(u32 timer_peripheral, u32 lock);
|
||||
void timer_set_deadtime(u32 timer_peripheral, u32 deadtime);
|
||||
void timer_generate_event(u32 timer_peripheral, u32 event);
|
||||
u32 timer_get_counter(u32 timer_peripheral);
|
||||
|
||||
#endif
|
||||
|
@ -104,6 +104,16 @@ void timer_disable_irq(u32 timer_peripheral, u32 irq)
|
||||
TIM_DIER(timer_peripheral) &= ~irq;
|
||||
}
|
||||
|
||||
bool timer_get_flag(u32 timer_peripheral, u32 flag)
|
||||
{
|
||||
if (((TIM_SR(timer_peripheral) & flag) != 0) &&
|
||||
((TIM_DIER(timer_peripheral) & flag) != 0)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void timer_clear_flag(u32 timer_peripheral, u32 flag)
|
||||
{
|
||||
TIM_SR(timer_peripheral) &= ~flag;
|
||||
@ -929,3 +939,8 @@ void timer_generate_event(u32 timer_peripheral, u32 event)
|
||||
{
|
||||
TIM_EGR(timer_peripheral) |= event;
|
||||
}
|
||||
|
||||
u32 timer_get_counter(u32 timer_peripheral)
|
||||
{
|
||||
return TIM_CNT(timer_peripheral);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user