Browse Source

linux_pwm_out: add dynamic mixing support

master
Beat Küng 3 years ago committed by Daniel Agar
parent
commit
955179e992
  1. 2
      src/drivers/linux_pwm_out/CMakeLists.txt
  2. 10
      src/drivers/linux_pwm_out/linux_pwm_out.cpp
  3. 12
      src/drivers/linux_pwm_out/module.yaml

2
src/drivers/linux_pwm_out/CMakeLists.txt

@ -37,6 +37,8 @@ px4_add_module( @@ -37,6 +37,8 @@ px4_add_module(
COMPILE_FLAGS
SRCS
linux_pwm_out.cpp
MODULE_CONFIG
module.yaml
DEPENDS
output_limit
)

10
src/drivers/linux_pwm_out/linux_pwm_out.cpp

@ -44,8 +44,10 @@ LinuxPWMOut::LinuxPWMOut() : @@ -44,8 +44,10 @@ LinuxPWMOut::LinuxPWMOut() :
_cycle_perf(perf_alloc(PC_ELAPSED, MODULE_NAME": cycle")),
_interval_perf(perf_alloc(PC_INTERVAL, MODULE_NAME": interval"))
{
_mixing_output.setAllMinValues(PWM_DEFAULT_MIN);
_mixing_output.setAllMaxValues(PWM_DEFAULT_MAX);
if (!_mixing_output.useDynamicMixing()) {
_mixing_output.setAllMinValues(PWM_DEFAULT_MIN);
_mixing_output.setAllMaxValues(PWM_DEFAULT_MAX);
}
}
LinuxPWMOut::~LinuxPWMOut()
@ -154,8 +156,8 @@ void LinuxPWMOut::update_params() @@ -154,8 +156,8 @@ void LinuxPWMOut::update_params()
{
updateParams();
// skip update when armed
if (_mixing_output.armed().armed) {
// skip update when armed or dynamic mixing enabled
if (_mixing_output.armed().armed || _mixing_output.useDynamicMixing()) {
return;
}

12
src/drivers/linux_pwm_out/module.yaml

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
module_name: PWM Output
actuator_output:
output_groups:
- param_prefix: PWM
channel_label: 'PWM Actuator'
standard_params:
disarmed: { min: 800, max: 2200, default: 900 }
min: { min: 800, max: 1400, default: 1000 }
max: { min: 1600, max: 2200, default: 2000 }
failsafe: { min: 800, max: 2200 }
num_channels: 8
Loading…
Cancel
Save