mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-22 15:55:48 +03:00
SPRACINGF3NEO - Use RTC6705 clk hack.
CF/BF - Fix typo in max7456DmaInProgress. Always define an implementation even when there is no TX-DMA. CF/BF - Ensure that max7456 communication does not disrupt RTC6705 communication when using the same SPI port for both. CF/BF - Port RTC6705 to use the VTX API. * Support VTX channel/band/power on OSD for ALL vtx APIs - previously it only supported RTC6705. * Remove all FEATURE_VTX usage. * Remove all `#define VTX` usage. Note that due to the async nature of tramp/smartaudio it's not possible to know the current band/channel after requesting a change (as the request hasn't been processed) so it makes no sense to try and save the config - and on the tramp/smartaudio vtx the vtx maintains it's state. So on an RTX6705 equipped FC the user should now MANUALLY save the config using the save config stick position. CF/BF - Move CMS for RTC6705 into vtx_rtc6705.c for consistency with other VTX CMS menus. CF/BF - Update RTC6705 via SOFT SPI to use VTX API. * Achieved by simply aligning the API at the driver level and removing all legacy conditional compilation checks. CF/BF - Use new IO for RTC6705 CLK Hack CF/BF - Port VTX button from CF v1.x. Features: * Channel Cycle * Band Cycle * Power Cycle * Save Settings * Works with any VTX using VTX API. CF/BF - Allow support for Internal and External VTX - External takes precedence when configured. CF/BF - Fix display of VTX power in CMS. * Issue occured when CMS was transitioned from integer to list of strings. CF/BF - Disable SMARTAUDIO and TRAMP on the SPRacingF3NEO due to flash size. CF/BF - Cleanup const usage of bass-by-value parameters. Cleanup naming. CF/BF - Cleanup naming. Removing noise-words. Improving consistency. CF/BF - Improve readability by further naming cleanups. CF/BF - Remove some magic numbers in the RTC6705 VTX code. CF/BF - Use braces on some procedural macros. CF/BF - Improve code readability by renaming rtc6705SetChannel to rtc6705SetBandAndChannel. CF/BF - Remove editor mishap. CF/BF - Make the rtc6705Dev variable static. CF/BF - remove duplicate state variablertc6705Dev_t - vtxDevice_t had all we needed. Use brackets on some procedural style macros. Make all the vtx vtable static const. CF/BF - making some declarations const. CF/BF - Fix vtx_power maximum value (out by one).
This commit is contained in:
parent
aae589cab8
commit
723831b579
47 changed files with 1084 additions and 655 deletions
|
@ -51,7 +51,7 @@
|
|||
#include "drivers/system.h"
|
||||
#include "drivers/vcd.h"
|
||||
#include "drivers/vtx_common.h"
|
||||
#include "drivers/vtx_soft_spi_rtc6705.h"
|
||||
#include "drivers/transponder_ir.h"
|
||||
|
||||
#include "fc/config.h"
|
||||
#include "fc/controlrate_profile.h"
|
||||
|
@ -82,7 +82,7 @@
|
|||
#include "io/serial_4way.h"
|
||||
#include "io/servos.h"
|
||||
#include "io/transponder_ir.h"
|
||||
#include "io/vtx.h"
|
||||
#include "io/vtx_control.h"
|
||||
|
||||
#include "msp/msp.h"
|
||||
#include "msp/msp_protocol.h"
|
||||
|
@ -1300,13 +1300,13 @@ static bool mspFcProcessOutCommand(uint8_t cmdMSP, sbuf_t *dst, mspPostProcessFn
|
|||
if (deviceType != VTXDEV_UNKNOWN) {
|
||||
|
||||
uint8_t band=0, channel=0;
|
||||
vtxCommonGetBandChan(&band,&channel);
|
||||
vtxCommonGetBandAndChannel(&band,&channel);
|
||||
|
||||
uint8_t powerIdx=0; // debug
|
||||
vtxCommonGetPowerIndex(&powerIdx);
|
||||
|
||||
uint8_t pitmode=0;
|
||||
vtxCommonGetPitmode(&pitmode);
|
||||
vtxCommonGetPitMode(&pitmode);
|
||||
|
||||
sbufWriteU8(dst, deviceType);
|
||||
sbufWriteU8(dst, band);
|
||||
|
@ -1717,27 +1717,18 @@ static mspResult_e mspFcProcessInCommand(uint8_t cmdMSP, sbuf_t *src)
|
|||
break;
|
||||
#endif
|
||||
|
||||
#if defined(USE_RTC6705) || defined(VTX_COMMON)
|
||||
#ifdef VTX_COMMON
|
||||
case MSP_SET_VTX_CONFIG:
|
||||
{
|
||||
uint16_t tmp = sbufReadU16(src);
|
||||
#if defined(USE_RTC6705)
|
||||
if (tmp < 40)
|
||||
vtxConfigMutable()->vtx_channel = tmp;
|
||||
if (current_vtx_channel != vtxConfig()->vtx_channel) {
|
||||
current_vtx_channel = vtxConfig()->vtx_channel;
|
||||
rtc6705_soft_spi_set_channel(vtx_freq[current_vtx_channel]);
|
||||
}
|
||||
#else
|
||||
const uint16_t tmp = sbufReadU16(src);
|
||||
const uint8_t band = (tmp / 8) + 1;
|
||||
const uint8_t channel = (tmp % 8) + 1;
|
||||
|
||||
if (vtxCommonGetDeviceType() != VTXDEV_UNKNOWN) {
|
||||
|
||||
uint8_t band = (tmp / 8) + 1;
|
||||
uint8_t channel = (tmp % 8) + 1;
|
||||
|
||||
uint8_t current_band=0, current_channel=0;
|
||||
vtxCommonGetBandChan(¤t_band,¤t_channel);
|
||||
vtxCommonGetBandAndChannel(¤t_band,¤t_channel);
|
||||
if ((current_band != band) || (current_channel != channel))
|
||||
vtxCommonSetBandChan(band,channel);
|
||||
vtxCommonSetBandAndChannel(band,channel);
|
||||
|
||||
if (sbufBytesRemaining(src) < 2)
|
||||
break;
|
||||
|
@ -1750,11 +1741,10 @@ static mspResult_e mspFcProcessInCommand(uint8_t cmdMSP, sbuf_t *src)
|
|||
|
||||
uint8_t pitmode = sbufReadU8(src);
|
||||
uint8_t current_pitmode = 0;
|
||||
vtxCommonGetPitmode(¤t_pitmode);
|
||||
vtxCommonGetPitMode(¤t_pitmode);
|
||||
if (current_pitmode != pitmode)
|
||||
vtxCommonSetPitmode(pitmode);
|
||||
vtxCommonSetPitMode(pitmode);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue