From 8652bfee8d50310f6cc4fe2c89b175539fdee5b7 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 6 Nov 2012 22:04:41 +1100 Subject: [PATCH] APM: added RSSI_PIN option for receiver RSSI this allows you to configure the pin for receiver RSSI without recompiling --- ArduPlane/ArduPlane.pde | 6 +++--- ArduPlane/Parameters.h | 4 +++- ArduPlane/Parameters.pde | 12 ++++++++++-- ArduPlane/config.h | 5 ----- ArduPlane/sensors.pde | 3 +-- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/ArduPlane/ArduPlane.pde b/ArduPlane/ArduPlane.pde index 387e32bb9f..4f14835c51 100644 --- a/ArduPlane/ArduPlane.pde +++ b/ArduPlane/ArduPlane.pde @@ -274,9 +274,9 @@ AP_AnalogSource_ADC pitot_analog_source( &adc, AP_AnalogSource_Arduino pitot_analog_source(CONFIG_PITOT_SOURCE_ANALOG_PIN, 4.0); #endif -#if RECEIVER_RSSI_PIN != -1 -AP_AnalogSource_Arduino RSSI_pin(RECEIVER_RSSI_PIN, 0.25); -#endif +// a pin for reading the receiver RSSI voltage. The scaling by 0.25 +// is to take the 0 to 1024 range down to an 8 bit range for MAVLink +AP_AnalogSource_Arduino RSSI_pin(-1, 0.25); AP_Relay relay; diff --git a/ArduPlane/Parameters.h b/ArduPlane/Parameters.h index e84c8b0e79..643dcaa25f 100644 --- a/ArduPlane/Parameters.h +++ b/ArduPlane/Parameters.h @@ -138,7 +138,8 @@ public: // // Battery monitoring parameters // - k_param_battery_volt_pin = 168, + k_param_rssi_pin = 167, + k_param_battery_volt_pin, k_param_battery_curr_pin, // 169 // @@ -341,6 +342,7 @@ public: AP_Float curr_amp_per_volt; AP_Float input_voltage; AP_Int32 pack_capacity; // Battery pack capacity less reserve + AP_Int8 rssi_pin; AP_Int8 battery_volt_pin; AP_Int8 battery_curr_pin; AP_Int8 inverted_flight_ch; // 0=disabled, 1-8 is channel for inverted flight trigger diff --git a/ArduPlane/Parameters.pde b/ArduPlane/Parameters.pde index 79b435fab6..b2756e5abe 100644 --- a/ArduPlane/Parameters.pde +++ b/ArduPlane/Parameters.pde @@ -534,16 +534,24 @@ const AP_Param::Info var_info[] PROGMEM = { // @Param: BATT_VOLT_PIN // @DisplayName: Battery Voltage sensing pin // @Description: Setting this to 0 ~ 13 will enable battery current sensing on pins A0 ~ A13. - // @Values: 99:Disabled, 0:A0, 1:A1, 13:A13 + // @Values: -1:Disabled, 0:A0, 1:A1, 13:A13 // @User: Standard GSCALAR(battery_volt_pin, "BATT_VOLT_PIN", BATTERY_VOLT_PIN), // @Param: BATT_CURR_PIN // @DisplayName: Battery Current sensing pin // @Description: Setting this to 0 ~ 13 will enable battery current sensing on pins A0 ~ A13. - // @Values: 99:Disabled, 1:A1, 2:A2, 12:A12 + // @Values: -1:Disabled, 1:A1, 2:A2, 12:A12 // @User: Standard GSCALAR(battery_curr_pin, "BATT_CURR_PIN", BATTERY_CURR_PIN), + + // @Param: RSSI_PIN + // @DisplayName: Receiver RSSI sensing pin + // @Description: This selects an analog pin for the receiver RSSI voltage. It assumes the voltage is 5V for max rssi, 0V for minimum + // @Values: -1:Disabled, 0:A0, 1:A1, 13:A13 + // @User: Standard + GSCALAR(rssi_pin, "RSSI_PIN", -1), + GSCALAR(inverted_flight_ch, "INVERTEDFLT_CH", 0), // barometer ground calibration. The GND_ prefix is chosen for diff --git a/ArduPlane/config.h b/ArduPlane/config.h index 13261e2fcd..1d4d8697e7 100644 --- a/ArduPlane/config.h +++ b/ArduPlane/config.h @@ -134,11 +134,6 @@ #endif -// pin for receiver RSSI -#ifndef RECEIVER_RSSI_PIN -# define RECEIVER_RSSI_PIN -1 -#endif - ////////////////////////////////////////////////////////////////////////////// // IMU Selection // diff --git a/ArduPlane/sensors.pde b/ArduPlane/sensors.pde index 87657da7bb..a8f506ab18 100644 --- a/ArduPlane/sensors.pde +++ b/ArduPlane/sensors.pde @@ -64,10 +64,9 @@ static void read_battery(void) // RC_CHANNELS_SCALED message void read_receiver_rssi(void) { -#if RECEIVER_RSSI_PIN != -1 + RSSI_pin.set_pin(g.rssi_pin); float ret = RSSI_pin.read(); receiver_rssi = constrain(ret, 0, 255); -#endif }