aboutsummaryrefslogtreecommitdiff
path: root/src/modules/px4iofirmware/controls.c
diff options
context:
space:
mode:
authorLorenz Meier <lm@inf.ethz.ch>2014-01-18 12:00:17 +0100
committerLorenz Meier <lm@inf.ethz.ch>2014-01-18 12:00:17 +0100
commitd174998b45349348ffe41150aa1d22d7d943b790 (patch)
treec8dd4a7513038dc66294e33c94643f57813e759e /src/modules/px4iofirmware/controls.c
parentdd9df7b1b0974a9838d3e21842a0d90f3eff54d9 (diff)
downloadpx4-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.c9
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);
/*