Added functions for configuring timers in slave mode.

This commit is contained in:
Gareth McMullin 2012-04-08 14:12:21 +12:00
parent a8ec86a527
commit 8820277f09
2 changed files with 38 additions and 0 deletions

View File

@ -977,4 +977,10 @@ void timer_ic_set_polarity(u32 timer, enum tim_ic_id ic, enum tim_ic_pol pol);
void timer_ic_enable(u32 timer, enum tim_ic_id ic);
void timer_ic_disable(u32 timer, enum tim_ic_id ic);
void timer_slave_set_filter(u32 timer, enum tim_ic_filter flt);
void timer_slave_set_prescaler(u32 timer, enum tim_ic_psc psc);
void timer_slave_set_polarity(u32 timer, enum tim_ic_pol pol);
void timer_slave_set_mode(u32 timer, u8 mode);
void timer_slave_set_trigger(u32 timer, u8 trigger);
#endif

View File

@ -1007,3 +1007,35 @@ void timer_ic_disable(u32 timer, enum tim_ic_id ic)
TIM_CCER(timer) &= ~(0x1 << (ic * 4));
}
void timer_slave_set_filter(u32 timer, enum tim_ic_filter flt)
{
TIM_SMCR(timer) &= ~TIM_SMCR_ETF_MASK;
TIM_SMCR(timer) |= flt << 8;
}
void timer_slave_set_prescaler(u32 timer, enum tim_ic_psc psc)
{
TIM_SMCR(timer) &= ~TIM_SMCR_ETPS_MASK;
TIM_SMCR(timer) |= psc << 12;
}
void timer_slave_set_polarity(u32 timer, enum tim_ic_pol pol)
{
if (pol)
TIM_SMCR(timer) |= TIM_SMCR_ETP;
else
TIM_SMCR(timer) &= ~TIM_SMCR_ETP;
}
void timer_slave_set_mode(u32 timer, u8 mode)
{
TIM_SMCR(timer) &= ~TIM_SMCR_SMS_MASK;
TIM_SMCR(timer) |= mode;
}
void timer_slave_set_trigger(u32 timer, u8 trigger)
{
TIM_SMCR(timer) &= ~TIM_SMCR_TS_MASK;
TIM_SMCR(timer) |= trigger;
}