Added set prescaler and set repetition counter functions to timer.

This commit is contained in:
Piotr Esden-Tempski 2011-01-31 22:08:37 -08:00
parent 92edc113f9
commit d40fb96fcf
3 changed files with 21 additions and 3 deletions

View File

@ -124,9 +124,6 @@ void tim_setup(void)
/* Reset TIM1 peripheral */
timer_reset(TIM1);
/* Clock division. */
timer_set_clock_division(TIM1, TIM_CR1_CKD_CK_INT);
/* Timer global mode:
* - No divider
* - alignment edge
@ -136,6 +133,12 @@ void tim_setup(void)
TIM_CR1_CMS_EDGE,
TIM_CR1_DIR_UP);
/* Reset prescaler value. */
timer_set_prescaler(TIM1, 0);
/* Reset repetition counter value. */
timer_set_repetition_counter(TIM1, 0);
/* Enable preload. */
timer_enable_preload(TIM1);

View File

@ -883,6 +883,8 @@ void timer_enable_compare_control_update_on_trigger(u32 timer_peripheral);
void timer_disable_compare_control_update_on_trigger(u32 timer_peripheral);
void timer_enable_preload_complementry_enable_bits(u32 timer_peripheral);
void timer_disable_preload_complementry_enable_bits(u32 timer_peripheral);
void timer_set_prescaler(u32 timer_peripheral, u32 value);
void timer_set_repetition_counter(u32 timer_peripheral, u32 value);
void timer_set_period(u32 timer_peripheral, u32 period);
void timer_enable_oc_clear(u32 timer_peripheral, enum tim_oc_id oc_id);
void timer_disable_oc_clear(u32 timer_peripheral, enum tim_oc_id oc_id);

View File

@ -253,6 +253,19 @@ void timer_disable_preload_complementry_enable_bits(u32 timer_peripheral)
TIM_CR2(timer_peripheral) &= ~TIM_CR2_CCPC;
}
void timer_set_prescaler(u32 timer_peripheral, u32 value)
{
TIM_PSC(timer_peripheral) = value;
}
void timer_set_repetition_counter(u32 timer_peripheral, u32 value)
{
if ((timer_peripheral == TIM1) ||
(timer_peripheral == TIM8)) {
TIM_RCR(timer_peripheral) = value;
}
}
void timer_set_period(u32 timer_peripheral, u32 period)
{
TIM_ARR(timer_peripheral) = period;