1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-19 06:15:16 +03:00

Merge pull request #4404 from mikeller/fix_vtx_rtc6705_no_power_pin

Fixed power configuration for RTC6705 based VTX with no power pin.
This commit is contained in:
Michael Keller 2017-10-21 19:10:41 +13:00 committed by GitHub
commit 42f1bfef0f
5 changed files with 13 additions and 15 deletions

View file

@ -48,18 +48,18 @@ static const char * const rtc6705BandNames[] = {
static OSD_TAB_t entryVtxBand = {&cmsx_vtxBand, ARRAYLEN(rtc6705BandNames) - 1, &rtc6705BandNames[0]};
static OSD_UINT8_t entryVtxChannel = {&cmsx_vtxChannel, 1, VTX_RTC6705_CHANNEL_COUNT, 1};
static OSD_TAB_t entryVtxPower = {&cmsx_vtxPower, VTX_RTC6705_POWER_COUNT - 1, &rtc6705PowerNames[0]};
static OSD_TAB_t entryVtxPower = {&cmsx_vtxPower, VTX_RTC6705_POWER_COUNT - 1 - VTX_RTC6705_MIN_POWER, &rtc6705PowerNames[VTX_RTC6705_MIN_POWER]};
static void cmsx_Vtx_ConfigRead(void)
{
cmsx_vtxBand = vtxSettingsConfig()->band - 1;
cmsx_vtxChannel = vtxSettingsConfig()->channel;
cmsx_vtxPower = vtxSettingsConfig()->power;
cmsx_vtxPower = vtxSettingsConfig()->power - VTX_RTC6705_MIN_POWER;
}
static void cmsx_Vtx_ConfigWriteback(void)
{
vtxSettingsSaveBandChanAndPower(cmsx_vtxBand + 1, cmsx_vtxChannel, cmsx_vtxPower);
vtxSettingsSaveBandChanAndPower(cmsx_vtxBand + 1, cmsx_vtxChannel, cmsx_vtxPower + VTX_RTC6705_MIN_POWER);
}
static long cmsx_Vtx_onEnter(void)

View file

@ -746,7 +746,7 @@ const clivalue_t valueTable[] = {
#ifdef VTX_SETTINGS_CONFIG
{ "vtx_band", VAR_UINT8 | MASTER_VALUE, .config.minmax = { 0, VTX_SETTINGS_MAX_BAND }, PG_VTX_SETTINGS_CONFIG, offsetof(vtxSettingsConfig_t, band) },
{ "vtx_channel", VAR_UINT8 | MASTER_VALUE, .config.minmax = { VTX_SETTINGS_MIN_CHANNEL, VTX_SETTINGS_MAX_CHANNEL }, PG_VTX_SETTINGS_CONFIG, offsetof(vtxSettingsConfig_t, channel) },
{ "vtx_power", VAR_UINT8 | MASTER_VALUE, .config.minmax = { 0, VTX_SETTINGS_POWER_COUNT }, PG_VTX_SETTINGS_CONFIG, offsetof(vtxSettingsConfig_t, power) },
{ "vtx_power", VAR_UINT8 | MASTER_VALUE, .config.minmax = { VTX_SETTINGS_MIN_POWER, VTX_SETTINGS_POWER_COUNT }, PG_VTX_SETTINGS_CONFIG, offsetof(vtxSettingsConfig_t, power) },
#ifdef VTX_SETTINGS_FREQCMD
{ "vtx_freq", VAR_UINT16 | MASTER_VALUE, .config.minmax = { 0, VTX_SETTINGS_MAX_FREQUENCY_MHZ }, PG_VTX_SETTINGS_CONFIG, offsetof(vtxSettingsConfig_t, freq) },
#endif

View file

@ -30,6 +30,7 @@
#include "cms/cms.h"
#include "cms/cms_types.h"
#include "common/maths.h"
#include "common/utils.h"
#include "config/parameter_group.h"
@ -52,15 +53,9 @@ bool canUpdateVTX(void);
#define WAIT_FOR_VTX while (!canUpdateVTX()) {}
#if defined(CMS) || defined(VTX_COMMON)
#ifdef RTC6705_POWER_PIN
const char * const rtc6705PowerNames[VTX_RTC6705_POWER_COUNT] = {
"---", "25 ", "200",
};
#else
const char * const rtc6705PowerNames[VTX_RTC6705_POWER_COUNT] = {
"25 ", "200",
};
#endif
#endif
#ifdef VTX_COMMON
@ -110,7 +105,7 @@ void vtxRTC6705Process(uint32_t now)
if (!configured) {
vtxRTC6705.band = vtxSettingsConfig()->band;
vtxRTC6705.channel = vtxSettingsConfig()->channel;
vtxRTC6705.powerIndex = vtxSettingsConfig()->power;
vtxRTC6705.powerIndex = MAX(vtxSettingsConfig()->power, VTX_RTC6705_MIN_POWER);
#ifdef RTC6705_POWER_PIN
if (vtxRTC6705.powerIndex > 0) {
@ -186,7 +181,7 @@ void vtxRTC6705SetPowerByIndex(uint8_t index)
}
}
#else
vtxRTC6705.powerIndex = index;
vtxRTC6705.powerIndex = MAX(index, VTX_RTC6705_MIN_POWER);
rtc6705SetRFPower(index);
#endif
}

View file

@ -30,12 +30,13 @@
#define VTX_RTC6705_BAND_COUNT (VTX_RTC6705_MAX_BAND - VTX_RTC6705_MIN_BAND + 1)
#define VTX_RTC6705_CHANNEL_COUNT (VTX_RTC6705_MAX_CHANNEL - VTX_RTC6705_MIN_CHANNEL + 1)
#ifdef RTC6705_POWER_PIN
#define VTX_RTC6705_POWER_COUNT 3
#define VTX_RTC6705_DEFAULT_POWER 1
#if defined(RTC6705_POWER_PIN)
#define VTX_RTC6705_MIN_POWER 0
#else
#define VTX_RTC6705_POWER_COUNT 2
#define VTX_RTC6705_DEFAULT_POWER 0
#define VTX_RTC6705_MIN_POWER 1
#endif
extern const char * const rtc6705PowerNames[VTX_RTC6705_POWER_COUNT];

View file

@ -34,6 +34,7 @@
#define VTX_SETTINGS_POWER_COUNT 5
#define VTX_SETTINGS_DEFAULT_POWER 1
#define VTX_SETTINGS_MIN_POWER 0
#define VTX_SETTINGS_CONFIG
#define VTX_SETTINGS_FREQCMD
@ -43,6 +44,7 @@
#define VTX_SETTINGS_POWER_COUNT VTX_RTC6705_POWER_COUNT
#define VTX_SETTINGS_DEFAULT_POWER VTX_RTC6705_DEFAULT_POWER
#define VTX_SETTINGS_MIN_POWER VTX_RTC6705_MIN_POWER
#define VTX_SETTINGS_CONFIG
#endif