mirror of https://github.com/ArduPilot/ardupilot
AP_HAL_ChibiOS: add BLHeli_S ESC type and use it to control bitwidths
This commit is contained in:
parent
34cb45a11e
commit
a3e79c8263
|
@ -467,6 +467,28 @@ void RCOutput::set_dshot_rate(uint8_t dshot_rate, uint16_t loop_rate_hz)
|
||||||
_dshot_period_us = 1000000UL / drate;
|
_dshot_period_us = 1000000UL / drate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef DISABLE_DSHOT
|
||||||
|
/*
|
||||||
|
Set/get the dshot esc_type
|
||||||
|
*/
|
||||||
|
void RCOutput::set_dshot_esc_type(DshotEscType dshot_esc_type)
|
||||||
|
{
|
||||||
|
_dshot_esc_type = dshot_esc_type;
|
||||||
|
switch (_dshot_esc_type) {
|
||||||
|
case DSHOT_ESC_BLHELI_S:
|
||||||
|
DSHOT_BIT_WIDTH_TICKS = DSHOT_BIT_WIDTH_TICKS_S;
|
||||||
|
DSHOT_BIT_0_TICKS = DSHOT_BIT_0_TICKS_S;
|
||||||
|
DSHOT_BIT_1_TICKS = DSHOT_BIT_1_TICKS_S;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
DSHOT_BIT_WIDTH_TICKS = DSHOT_BIT_WIDTH_TICKS_DEFAULT;
|
||||||
|
DSHOT_BIT_0_TICKS = DSHOT_BIT_0_TICKS_DEFAULT;
|
||||||
|
DSHOT_BIT_1_TICKS = DSHOT_BIT_1_TICKS_DEFAULT;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
find pwm_group and index in group given a channel number
|
find pwm_group and index in group given a channel number
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -171,7 +171,7 @@ public:
|
||||||
/*
|
/*
|
||||||
Set/get the dshot esc_type
|
Set/get the dshot esc_type
|
||||||
*/
|
*/
|
||||||
void set_dshot_esc_type(DshotEscType dshot_esc_type) override { _dshot_esc_type = dshot_esc_type; }
|
void set_dshot_esc_type(DshotEscType dshot_esc_type) override;
|
||||||
|
|
||||||
DshotEscType get_dshot_esc_type() const override { return _dshot_esc_type; }
|
DshotEscType get_dshot_esc_type() const override { return _dshot_esc_type; }
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -146,6 +146,7 @@ void RCOutput::update_channel_masks() {
|
||||||
for (uint8_t i=0; i<HAL_PWM_COUNT; i++) {
|
for (uint8_t i=0; i<HAL_PWM_COUNT; i++) {
|
||||||
switch (_dshot_esc_type) {
|
switch (_dshot_esc_type) {
|
||||||
case DSHOT_ESC_BLHELI:
|
case DSHOT_ESC_BLHELI:
|
||||||
|
case DSHOT_ESC_BLHELI_S:
|
||||||
if (_reversible_mask & (1U<<i)) {
|
if (_reversible_mask & (1U<<i)) {
|
||||||
send_dshot_command(DSHOT_3D_ON, i + chan_offset, 0, 10, true);
|
send_dshot_command(DSHOT_3D_ON, i + chan_offset, 0, 10, true);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue