|
|
|
@ -27,7 +27,9 @@
@@ -27,7 +27,9 @@
|
|
|
|
|
#ifndef HAL_NO_UARTDRIVER |
|
|
|
|
#include <GCS_MAVLink/GCS.h> |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#if HAL_USE_PWM == TRUE |
|
|
|
|
#include <SRV_Channel/SRV_Channel.h> |
|
|
|
|
|
|
|
|
|
using namespace ChibiOS; |
|
|
|
|
|
|
|
|
@ -59,7 +61,6 @@ static const eventmask_t EVT_PWM_SEND_NEXT = EVENT_MASK(14);
@@ -59,7 +61,6 @@ static const eventmask_t EVT_PWM_SEND_NEXT = EVENT_MASK(14);
|
|
|
|
|
*/ |
|
|
|
|
void RCOutput::init() |
|
|
|
|
{ |
|
|
|
|
uint8_t pwm_count = AP_BoardConfig::get_pwm_count(); |
|
|
|
|
for (auto &group : pwm_group_list) { |
|
|
|
|
const uint8_t i = &group - pwm_group_list; |
|
|
|
|
//Start Pwm groups
|
|
|
|
@ -67,10 +68,12 @@ void RCOutput::init()
@@ -67,10 +68,12 @@ void RCOutput::init()
|
|
|
|
|
group.dshot_event_mask = EVENT_MASK(i); |
|
|
|
|
|
|
|
|
|
for (uint8_t j = 0; j < 4; j++ ) { |
|
|
|
|
#if !APM_BUILD_TYPE(APM_BUILD_iofirmware) |
|
|
|
|
uint8_t chan = group.chan[j]; |
|
|
|
|
if (chan >= pwm_count) { |
|
|
|
|
if (SRV_Channels::is_GPIO(chan+chan_offset)) { |
|
|
|
|
group.chan[j] = CHAN_DISABLED; |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
if (group.chan[j] != CHAN_DISABLED) { |
|
|
|
|
num_fmu_channels = MAX(num_fmu_channels, group.chan[j]+1); |
|
|
|
|
group.ch_mask |= (1U<<group.chan[j]); |
|
|
|
|