AP_BoardConfig: add support for PWM Voltage level setting

This commit is contained in:
Siddharth Purohit 2019-03-29 17:38:35 +05:30 committed by Andrew Tridgell
parent dd62cf5ae0
commit c0036cbbdd
3 changed files with 22 additions and 1 deletions

View File

@ -220,7 +220,16 @@ const AP_Param::GroupInfo AP_BoardConfig::var_info[] = {
// @User: Advanced
AP_GROUPINFO("SD_SLOWDOWN", 17, AP_BoardConfig, _sdcard_slowdown, 0),
#endif
#ifdef HAL_GPIO_PWM_VOLT_PIN
// @Param: PWM_VOLT_SEL
// @DisplayName: Set PWM Out Voltage
// @Description: This sets the voltage max for PWM output pulses. 0 for 3.3V and 1 for 5V output.
//@Values: 0:3.3V,1:5V
// @User: Advanced
AP_GROUPINFO("PWM_VOLT_SEL", 18, AP_BoardConfig, _pwm_volt_sel, 0),
#endif
AP_GROUPEND
};

View File

@ -216,6 +216,10 @@ private:
AP_Float _vservo_min;
#endif
#ifdef HAL_GPIO_PWM_VOLT_PIN
AP_Int8 _pwm_volt_sel;
#endif
#if CONFIG_HAL_BOARD == HAL_BOARD_CHIBIOS
AP_Int8 _sdcard_slowdown;
#endif

View File

@ -345,6 +345,14 @@ void AP_BoardConfig::board_setup()
hal.rcin->init();
hal.rcout->init();
#endif
#if HAL_GPIO_PWM_VOLT_PIN
if (_pwm_volt_sel == 0) {
hal.gpio->write(HAL_GPIO_PWM_VOLT_PIN, 1); //set pin for 3.3V PWM Output
} else if (_pwm_volt_sel == 1) {
hal.gpio->write(HAL_GPIO_PWM_VOLT_PIN, 0); //set pin for 5V PWM Output
}
#endif
board_setup_uart();
board_setup_sbus();
#if AP_FEATURE_BOARD_DETECT