diff --git a/sw/airborne/arch/lpc21/mcu_periph/pwm_input_arch.c b/sw/airborne/arch/lpc21/mcu_periph/pwm_input_arch.c index 4147a51aaf..15944be5d3 100644 --- a/sw/airborne/arch/lpc21/mcu_periph/pwm_input_arch.c +++ b/sw/airborne/arch/lpc21/mcu_periph/pwm_input_arch.c @@ -144,18 +144,25 @@ void pwm_input_isr2(void) t_fall = T0CR0; T0CCR |= TCCR_CR0_R; T0CCR &= ~TCCR_CR0_F; -#if USE_PWM_INPUT2 == PWM_PULSE_TYPE_ACTIVE_LOW -#else - pwm_input_duration[1] = t_fall - t_rise; - pwm_input_valid[1] = TRUE; +#if USE_PWM_INPUT2 == PWM_PULSE_TYPE_ACTIVE_HIGH + pwm_input_duty_tics[1] = t_fall - t_rise; + pwm_input_duty_valid[1] = TRUE; +#elif USE_PWM_INPUT2 == PWM_PULSE_TYPE_ACTIVE_LOW + pwm_input_period_tics[1] = t_fall - t_oldfall; + pwm_input_period_valid[1] = TRUE; + t_oldfall = t_fall; #endif //ACTIVE_HIGH } else if (T0CCR & TCCR_CR0_R) { t_rise = T0CR0; T0CCR |= TCCR_CR0_F; T0CCR &= ~TCCR_CR0_R; #if USE_PWM_INPUT2 == PWM_PULSE_TYPE_ACTIVE_LOW - pwm_input_duration[1] = t_rise - t_fall; - pwm_input_valid[1] = TRUE; + pwm_input_duty_tics[1] = t_rise - t_fall; + pwm_input_duty_valid[1] = TRUE; +#elif USE_PWM_INPUT2 == PWM_PULSE_TYPE_ACTIVE_HIGH + pwm_input_period_tics[1] = t_rise - t_oldrise; + pwm_input_period_valid[1] = TRUE; + t_oldrise = t_rise; #endif //ACTIVE_LOW } }