|
|
|
@ -132,6 +132,7 @@ void RCOutput_AeroIO::set_freq(uint32_t chmask, uint16_t freq_hz)
@@ -132,6 +132,7 @@ void RCOutput_AeroIO::set_freq(uint32_t chmask, uint16_t freq_hz)
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!_corking) { |
|
|
|
|
_corking = true; |
|
|
|
|
push(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -150,6 +151,7 @@ void RCOutput_AeroIO::enable_ch(uint8_t ch)
@@ -150,6 +151,7 @@ void RCOutput_AeroIO::enable_ch(uint8_t ch)
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
_pending_duty_write_mask |= (1U << ch); |
|
|
|
|
_corking = true; |
|
|
|
|
push(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -160,6 +162,7 @@ void RCOutput_AeroIO::disable_ch(uint8_t ch)
@@ -160,6 +162,7 @@ void RCOutput_AeroIO::disable_ch(uint8_t ch)
|
|
|
|
|
} |
|
|
|
|
_duty_buffer[ch] = 0; |
|
|
|
|
_pending_duty_write_mask |= (1U << ch); |
|
|
|
|
_corking = true; |
|
|
|
|
push(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -169,6 +172,7 @@ void RCOutput_AeroIO::write(uint8_t ch, uint16_t period_us)
@@ -169,6 +172,7 @@ void RCOutput_AeroIO::write(uint8_t ch, uint16_t period_us)
|
|
|
|
|
_duty_buffer[ch] = period_us; |
|
|
|
|
|
|
|
|
|
if (!_corking) { |
|
|
|
|
_corking = true; |
|
|
|
|
push(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -180,6 +184,9 @@ void RCOutput_AeroIO::cork()
@@ -180,6 +184,9 @@ void RCOutput_AeroIO::cork()
|
|
|
|
|
|
|
|
|
|
void RCOutput_AeroIO::push() |
|
|
|
|
{ |
|
|
|
|
if (!_corking) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
_corking = false; |
|
|
|
|
|
|
|
|
|
for (uint8_t i = 0; i < PWM_CHAN_COUNT; i++) { |
|
|
|
|