PPM trainer output: update delay on each cycle

This commit is contained in:
Raphael Coeffic
2022-12-10 13:37:31 +01:00
committed by Raphael Coeffic
parent 2254d04643
commit f881d7e11c
3 changed files with 8 additions and 0 deletions
@@ -190,6 +190,11 @@ static void set_compare_reg(const stm32_pulse_timer_t* tim, uint32_t val)
}
}
void stm32_pulse_set_cmp_val(const stm32_pulse_timer_t* tim, uint32_t cmp_val)
{
set_compare_reg(tim, cmp_val);
}
static void set_oc_mode(const stm32_pulse_timer_t* tim, uint32_t ocmode)
{
uint32_t channel = tim->TIM_Channel;
@@ -51,6 +51,8 @@ void stm32_pulse_config_output(const stm32_pulse_timer_t* tim, bool polarity,
void stm32_pulse_set_polarity(const stm32_pulse_timer_t* tim, bool polarity);
void stm32_pulse_set_cmp_val(const stm32_pulse_timer_t* tim, uint32_t cmp_val);
// return true if it could be disabled without interrupting a pulse train, false otherwise
bool stm32_pulse_if_not_running_disable(const stm32_pulse_timer_t* tim);
@@ -183,6 +183,7 @@ static const stm32_pulse_timer_t trainerOutputTimer = {
static void trainerSendNextFrame()
{
stm32_pulse_set_polarity(&trainerOutputTimer, GET_TRAINER_PPM_POLARITY());
stm32_pulse_set_cmp_val(&trainerOutputTimer, GET_TRAINER_PPM_DELAY() * 2);
// load the first period: next reload when CC compare event triggers
trainerPulsesData.ppm.ptr = trainerPulsesData.ppm.pulses;