diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2014-01-18 12:00:17 +0100 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2014-01-18 12:00:17 +0100 |
commit | d174998b45349348ffe41150aa1d22d7d943b790 (patch) | |
tree | c8dd4a7513038dc66294e33c94643f57813e759e /src/modules/px4iofirmware/controls.c | |
parent | dd9df7b1b0974a9838d3e21842a0d90f3eff54d9 (diff) | |
download | px4-firmware-d174998b45349348ffe41150aa1d22d7d943b790.tar.gz px4-firmware-d174998b45349348ffe41150aa1d22d7d943b790.tar.bz2 px4-firmware-d174998b45349348ffe41150aa1d22d7d943b790.zip |
RSSI and concurrent S.Bus output handling
Diffstat (limited to 'src/modules/px4iofirmware/controls.c')
-rw-r--r-- | src/modules/px4iofirmware/controls.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/modules/px4iofirmware/controls.c b/src/modules/px4iofirmware/controls.c index 541eed0e1..5859f768b 100644 --- a/src/modules/px4iofirmware/controls.c +++ b/src/modules/px4iofirmware/controls.c @@ -114,9 +114,18 @@ controls_tick() { perf_begin(c_gather_sbus); bool sbus_updated = sbus_input(r_raw_rc_values, &r_raw_rc_count, &rssi, PX4IO_RC_INPUT_CHANNELS); + + bool sbus_status = (r_status_flags & PX4IO_P_STATUS_FLAGS_RC_SBUS); + if (sbus_updated) { r_status_flags |= PX4IO_P_STATUS_FLAGS_RC_SBUS; } + + /* switch S.Bus output pin as needed */ + if (sbus_status != (r_status_flags & PX4IO_P_STATUS_FLAGS_RC_SBUS)) { + ENABLE_SBUS_OUT((r_status_flags & PX4IO_P_STATUS_FLAGS_RC_SBUS)); + } + perf_end(c_gather_sbus); /* |