1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-14 20:10:18 +03:00

Whitespace tidy

This commit is contained in:
Martin Budden 2018-01-10 16:56:54 +00:00
parent 940d85e20b
commit 3747d6742b
50 changed files with 584 additions and 583 deletions

View file

@ -455,10 +455,10 @@ static long cmsx_CopyControlRateProfile(displayPort_t *pDisplay, const void *ptr
return 0; return 0;
} }
static OSD_Entry cmsx_menuCopyProfileEntries[] = static OSD_Entry cmsx_menuCopyProfileEntries[] =
{ {
{ "-- COPY PROFILE --", OME_Label, NULL, NULL, 0}, { "-- COPY PROFILE --", OME_Label, NULL, NULL, 0},
{ "CPY PID PROF TO", OME_TAB, NULL, &cmsx_PidProfileTable, 0 }, { "CPY PID PROF TO", OME_TAB, NULL, &cmsx_PidProfileTable, 0 },
{ "COPY PP", OME_Funcall, cmsx_CopyPidProfile, NULL, 0 }, { "COPY PP", OME_Funcall, cmsx_CopyPidProfile, NULL, 0 },
{ "CPY RATE PROF TO", OME_TAB, NULL, &cmsx_ControlRateProfileTable, 0 }, { "CPY RATE PROF TO", OME_TAB, NULL, &cmsx_ControlRateProfileTable, 0 },

View file

@ -14,7 +14,7 @@
#include "drivers/io.h" #include "drivers/io.h"
#include "drivers/time.h" #include "drivers/time.h"
//====================================Registers Addresses=========================================// //====================================Registers Addresses=========================================//
#define LPS_REF_P_XL 0x08 #define LPS_REF_P_XL 0x08
#define LPS_REF_P_L 0x09 #define LPS_REF_P_L 0x09
#define LPS_REF_P_H 0x0A #define LPS_REF_P_H 0x0A
@ -134,7 +134,7 @@
#define LPS_THS_PH 0x31 #define LPS_THS_PH 0x31
#define LPS_RPDS_L 0x39 #define LPS_RPDS_L 0x39
#define LPS_RPDS_H 0x3A #define LPS_RPDS_H 0x3A
//=======================================Constants=============================================// //=======================================Constants=============================================//
#define LPS22_ID 0xB1 #define LPS22_ID 0xB1
#define LPS25_ID 0xBD #define LPS25_ID 0xBD
#define LPS33_ID 0xB1 #define LPS33_ID 0xB1

View file

@ -188,7 +188,7 @@ static void hmc5883lConfigureDataReadyInterruptHandling(magDev_t* mag)
#ifdef USE_MAG_SPI_HMC5883 #ifdef USE_MAG_SPI_HMC5883
static void hmc5883SpiInit(busDevice_t *busdev) static void hmc5883SpiInit(busDevice_t *busdev)
{ {
IOHi(busdev->busdev_u.spi.csnPin); // Disable IOHi(busdev->busdev_u.spi.csnPin); // Disable
IOInit(busdev->busdev_u.spi.csnPin, OWNER_COMPASS_CS, 0); IOInit(busdev->busdev_u.spi.csnPin, OWNER_COMPASS_CS, 0);

View file

@ -140,7 +140,7 @@ static void pwmWriteDshot(uint8_t index, float value)
static uint8_t loadDmaBufferDshot(uint32_t *dmaBuffer, int stride, uint16_t packet) static uint8_t loadDmaBufferDshot(uint32_t *dmaBuffer, int stride, uint16_t packet)
{ {
for (int i = 0; i < 16; i++) { for (int i = 0; i < 16; i++) {
dmaBuffer[i * stride] = (packet & 0x8000) ? MOTOR_BIT_1 : MOTOR_BIT_0; // MSB first dmaBuffer[i * stride] = (packet & 0x8000) ? MOTOR_BIT_1 : MOTOR_BIT_0; // MSB first
packet <<= 1; packet <<= 1;
} }

View file

@ -85,7 +85,7 @@ typedef enum {
A7105_32_FILTER_TEST = 0x32, A7105_32_FILTER_TEST = 0x32,
} A7105Reg_t; } A7105Reg_t;
/* Register: A7105_00_MODE */ /* Register: A7105_00_MODE */
#define A7105_MODE_FECF 0x40 // [0]: FEC pass. [1]: FEC error. (FECF is read only, it is updated internally while receiving every packet.) #define A7105_MODE_FECF 0x40 // [0]: FEC pass. [1]: FEC error. (FECF is read only, it is updated internally while receiving every packet.)
#define A7105_MODE_CRCF 0x20 // [0]: CRC pass. [1]: CRC error. (CRCF is read only, it is updated internally while receiving every packet.) #define A7105_MODE_CRCF 0x20 // [0]: CRC pass. [1]: CRC error. (CRCF is read only, it is updated internally while receiving every packet.)
#define A7105_MODE_CER 0x10 // [0]: RF chip is disabled. [1]: RF chip is enabled. #define A7105_MODE_CER 0x10 // [0]: RF chip is disabled. [1]: RF chip is enabled.

File diff suppressed because it is too large Load diff

View file

@ -4,7 +4,7 @@
* @author MCD Application Team * @author MCD Application Team
* @version V1.0.3 * @version V1.0.3
* @date 13-November-2013 * @date 13-November-2013
* @brief This file contains all the functions prototypes for the SD Card * @brief This file contains all the functions prototypes for the SD Card
* stm324x9i_eval_sdio_sd driver firmware library. * stm324x9i_eval_sdio_sd driver firmware library.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -17,14 +17,14 @@
* *
* http://www.st.com/software_license_agreement_liberty_v2 * http://www.st.com/software_license_agreement_liberty_v2
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
* *
****************************************************************************** ******************************************************************************
*/ */
/* Define to prevent recursive inclusion -------------------------------------*/ /* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __SD_STDLIB_DRV #ifndef __SD_STDLIB_DRV
@ -43,9 +43,9 @@
typedef enum typedef enum
{ {
/** /**
* @brief SDIO specific error defines * @brief SDIO specific error defines
*/ */
SD_CMD_CRC_FAIL = (1), /*!< Command response received (but CRC check failed) */ SD_CMD_CRC_FAIL = (1), /*!< Command response received (but CRC check failed) */
SD_DATA_CRC_FAIL = (2), /*!< Data bock sent/received (CRC check Failed) */ SD_DATA_CRC_FAIL = (2), /*!< Data bock sent/received (CRC check Failed) */
SD_CMD_RSP_TIMEOUT = (3), /*!< Command response timeout */ SD_CMD_RSP_TIMEOUT = (3), /*!< Command response timeout */
@ -80,23 +80,23 @@ typedef enum
SD_SDIO_FUNCTION_FAILED = (32), SD_SDIO_FUNCTION_FAILED = (32),
SD_SDIO_UNKNOWN_FUNCTION = (33), SD_SDIO_UNKNOWN_FUNCTION = (33),
/** /**
* @brief Standard error defines * @brief Standard error defines
*/ */
SD_INTERNAL_ERROR, SD_INTERNAL_ERROR,
SD_NOT_CONFIGURED, SD_NOT_CONFIGURED,
SD_REQUEST_PENDING, SD_REQUEST_PENDING,
SD_REQUEST_NOT_APPLICABLE, SD_REQUEST_NOT_APPLICABLE,
SD_INVALID_PARAMETER, SD_INVALID_PARAMETER,
SD_UNSUPPORTED_FEATURE, SD_UNSUPPORTED_FEATURE,
SD_UNSUPPORTED_HW, SD_UNSUPPORTED_HW,
SD_ERROR, SD_ERROR,
SD_OK = 0 SD_OK = 0
} SD_Error; } SD_Error;
/** /**
* @brief SDIO Transfer state * @brief SDIO Transfer state
*/ */
typedef enum typedef enum
{ {
SD_TRANSFER_OK = 0, SD_TRANSFER_OK = 0,
@ -104,9 +104,9 @@ typedef enum
SD_TRANSFER_ERROR SD_TRANSFER_ERROR
} SDTransferState; } SDTransferState;
/** /**
* @brief SD Card States * @brief SD Card States
*/ */
typedef enum typedef enum
{ {
SD_CARD_READY = ((uint32_t)0x00000001), SD_CARD_READY = ((uint32_t)0x00000001),
@ -121,9 +121,9 @@ typedef enum
}SDCardState; }SDCardState;
/** /**
* @brief Card Specific Data: CSD Register * @brief Card Specific Data: CSD Register
*/ */
typedef struct typedef struct
{ {
__IO uint8_t CSDStruct; /*!< CSD structure */ __IO uint8_t CSDStruct; /*!< CSD structure */
@ -165,8 +165,8 @@ typedef struct
__IO uint8_t Reserved4; /*!< always 1*/ __IO uint8_t Reserved4; /*!< always 1*/
} SD_CSD; } SD_CSD;
/** /**
* @brief Card Identification Data: CID Register * @brief Card Identification Data: CID Register
*/ */
typedef struct typedef struct
{ {
@ -182,8 +182,8 @@ typedef struct
__IO uint8_t Reserved2; /*!< always 1 */ __IO uint8_t Reserved2; /*!< always 1 */
} SD_CID; } SD_CID;
/** /**
* @brief SD Card Status * @brief SD Card Status
*/ */
typedef struct typedef struct
{ {
@ -200,8 +200,8 @@ typedef struct
} SD_CardStatus; } SD_CardStatus;
/** /**
* @brief SD Card information * @brief SD Card information
*/ */
typedef struct typedef struct
{ {
@ -213,8 +213,8 @@ typedef struct
uint8_t CardType; uint8_t CardType;
} SD_CardInfo; } SD_CardInfo;
/** /**
* @brief SDIO Commands Index * @brief SDIO Commands Index
*/ */
#define SD_CMD_GO_IDLE_STATE ((uint8_t)0) #define SD_CMD_GO_IDLE_STATE ((uint8_t)0)
#define SD_CMD_SEND_OP_COND ((uint8_t)1) #define SD_CMD_SEND_OP_COND ((uint8_t)1)
@ -263,9 +263,9 @@ typedef struct
#define SD_CMD_GEN_CMD ((uint8_t)56) #define SD_CMD_GEN_CMD ((uint8_t)56)
#define SD_CMD_NO_CMD ((uint8_t)64) #define SD_CMD_NO_CMD ((uint8_t)64)
/** /**
* @brief Following commands are SD Card Specific commands. * @brief Following commands are SD Card Specific commands.
* SDIO_APP_CMD should be sent before sending these commands. * SDIO_APP_CMD should be sent before sending these commands.
*/ */
#define SD_CMD_APP_SD_SET_BUSWIDTH ((uint8_t)6) /*!< For SD Card only */ #define SD_CMD_APP_SD_SET_BUSWIDTH ((uint8_t)6) /*!< For SD Card only */
#define SD_CMD_SD_APP_STAUS ((uint8_t)13) /*!< For SD Card only */ #define SD_CMD_SD_APP_STAUS ((uint8_t)13) /*!< For SD Card only */
@ -276,9 +276,9 @@ typedef struct
#define SD_CMD_SDIO_RW_DIRECT ((uint8_t)52) /*!< For SD I/O Card only */ #define SD_CMD_SDIO_RW_DIRECT ((uint8_t)52) /*!< For SD I/O Card only */
#define SD_CMD_SDIO_RW_EXTENDED ((uint8_t)53) /*!< For SD I/O Card only */ #define SD_CMD_SDIO_RW_EXTENDED ((uint8_t)53) /*!< For SD I/O Card only */
/** /**
* @brief Following commands are SD Card Specific security commands. * @brief Following commands are SD Card Specific security commands.
* SDIO_APP_CMD should be sent before sending these commands. * SDIO_APP_CMD should be sent before sending these commands.
*/ */
#define SD_CMD_SD_APP_GET_MKB ((uint8_t)43) /*!< For SD Card only */ #define SD_CMD_SD_APP_GET_MKB ((uint8_t)43) /*!< For SD Card only */
#define SD_CMD_SD_APP_GET_MID ((uint8_t)44) /*!< For SD Card only */ #define SD_CMD_SD_APP_GET_MID ((uint8_t)44) /*!< For SD Card only */
@ -291,8 +291,8 @@ typedef struct
#define SD_CMD_SD_APP_SECURE_ERASE ((uint8_t)38) /*!< For SD Card only */ #define SD_CMD_SD_APP_SECURE_ERASE ((uint8_t)38) /*!< For SD Card only */
#define SD_CMD_SD_APP_CHANGE_SECURE_AREA ((uint8_t)49) /*!< For SD Card only */ #define SD_CMD_SD_APP_CHANGE_SECURE_AREA ((uint8_t)49) /*!< For SD Card only */
#define SD_CMD_SD_APP_SECURE_WRITE_MKB ((uint8_t)48) /*!< For SD Card only */ #define SD_CMD_SD_APP_SECURE_WRITE_MKB ((uint8_t)48) /*!< For SD Card only */
/* Uncomment the following line to select the SDIO Data transfer mode */ /* Uncomment the following line to select the SDIO Data transfer mode */
#if !defined (SD_DMA_MODE) && !defined (SD_POLLING_MODE) #if !defined (SD_DMA_MODE) && !defined (SD_POLLING_MODE)
#define SD_DMA_MODE ((uint32_t)0x00000000) #define SD_DMA_MODE ((uint32_t)0x00000000)
/*#define SD_POLLING_MODE ((uint32_t)0x00000002)*/ /*#define SD_POLLING_MODE ((uint32_t)0x00000002)*/
@ -309,8 +309,8 @@ typedef struct
*/ */
#define SD_DETECT_PIN IO16_Pin_15 #define SD_DETECT_PIN IO16_Pin_15
/** /**
* @brief Supported SD Memory Cards * @brief Supported SD Memory Cards
*/ */
#define SDIO_STD_CAPACITY_SD_CARD_V1_1 ((uint32_t)0x00000000) #define SDIO_STD_CAPACITY_SD_CARD_V1_1 ((uint32_t)0x00000000)
#define SDIO_STD_CAPACITY_SD_CARD_V2_0 ((uint32_t)0x00000001) #define SDIO_STD_CAPACITY_SD_CARD_V2_0 ((uint32_t)0x00000001)
@ -338,7 +338,7 @@ typedef struct
#define SD_SDIO_DMA DMA2 #define SD_SDIO_DMA DMA2
#define SD_SDIO_DMA_CLK RCC_AHB1Periph_DMA2 #define SD_SDIO_DMA_CLK RCC_AHB1Periph_DMA2
#define SD_SDIO_DMA_STREAM3 3 #define SD_SDIO_DMA_STREAM3 3
#ifdef SD_SDIO_DMA_STREAM3 #ifdef SD_SDIO_DMA_STREAM3
#define SD_SDIO_DMA_STREAM DMA2_Stream3 #define SD_SDIO_DMA_STREAM DMA2_Stream3

View file

@ -543,5 +543,5 @@ void pidController(const pidProfile_t *pidProfile, const rollAndPitchTrims_t *an
bool crashRecoveryModeActive(void) bool crashRecoveryModeActive(void)
{ {
return inCrashRecoveryMode; return inCrashRecoveryMode;
} }

View file

@ -2998,7 +2998,7 @@ static void cliStatus(char *cmdline)
UNUSED(cmdline); UNUSED(cmdline);
cliPrintLinef("System Uptime: %d seconds", millis() / 1000); cliPrintLinef("System Uptime: %d seconds", millis() / 1000);
#ifdef USE_RTC_TIME #ifdef USE_RTC_TIME
char buf[FORMATTED_DATE_TIME_BUFSIZE]; char buf[FORMATTED_DATE_TIME_BUFSIZE];
dateTime_t dt; dateTime_t dt;

View file

@ -458,7 +458,7 @@ static void applyLedFixedLayers(void)
hsvColor_t previousColor = ledStripConfig()->colors[(ledGetColor(ledConfig) - 1 + LED_CONFIGURABLE_COLOR_COUNT) % LED_CONFIGURABLE_COLOR_COUNT]; hsvColor_t previousColor = ledStripConfig()->colors[(ledGetColor(ledConfig) - 1 + LED_CONFIGURABLE_COLOR_COUNT) % LED_CONFIGURABLE_COLOR_COUNT];
if (ledGetOverlayBit(ledConfig, LED_OVERLAY_THROTTLE)) { //smooth fade with selected Aux channel of all HSV values from previousColor through color to nextColor if (ledGetOverlayBit(ledConfig, LED_OVERLAY_THROTTLE)) { //smooth fade with selected Aux channel of all HSV values from previousColor through color to nextColor
int centerPWM = (PWM_RANGE_MIN + PWM_RANGE_MAX) / 2; int centerPWM = (PWM_RANGE_MIN + PWM_RANGE_MAX) / 2;
if (auxInput < centerPWM) { if (auxInput < centerPWM) {
color.h = scaleRange(auxInput, PWM_RANGE_MIN, centerPWM, previousColor.h, color.h); color.h = scaleRange(auxInput, PWM_RANGE_MIN, centerPWM, previousColor.h, color.h);
color.s = scaleRange(auxInput, PWM_RANGE_MIN, centerPWM, previousColor.s, color.s); color.s = scaleRange(auxInput, PWM_RANGE_MIN, centerPWM, previousColor.s, color.s);

View file

@ -118,7 +118,7 @@ static uint8_t runcamDeviceReceivePacket(runcamDevice_t *device, uint8_t command
if (!runcamDeviceIsResponseReceiveDone(command, data, dataPos, &isDone)) { if (!runcamDeviceIsResponseReceiveDone(command, data, dataPos, &isDone)) {
return 0; return 0;
} }
if (isDone) { if (isDone) {
responseDataLen = dataPos; responseDataLen = dataPos;
break; break;
@ -180,11 +180,11 @@ static void runcamDeviceSendPacket(runcamDevice_t *device, uint8_t command, uint
static bool runcamDeviceSendRequestAndWaitingResp(runcamDevice_t *device, uint8_t commandID, uint8_t *paramData, uint8_t paramDataLen, uint8_t *outputBuffer, uint8_t *outputBufferLen) static bool runcamDeviceSendRequestAndWaitingResp(runcamDevice_t *device, uint8_t commandID, uint8_t *paramData, uint8_t paramDataLen, uint8_t *outputBuffer, uint8_t *outputBufferLen)
{ {
int max_retries = 1; int max_retries = 1;
// here using 1000ms as timeout, because the response from 5 key simulation command need a long time about >= 600ms, // here using 1000ms as timeout, because the response from 5 key simulation command need a long time about >= 600ms,
// so set a max value to ensure we can receive the response // so set a max value to ensure we can receive the response
int timeoutMs = 1000; int timeoutMs = 1000;
// only the command sending on initializing step need retry logic, // only the command sending on initializing step need retry logic,
// otherwise, the timeout of 1000 ms is enough for the response from device // otherwise, the timeout of 1000 ms is enough for the response from device
if (commandID == RCDEVICE_PROTOCOL_COMMAND_GET_DEVICE_INFO) { if (commandID == RCDEVICE_PROTOCOL_COMMAND_GET_DEVICE_INFO) {
max_retries = 5; max_retries = 5;
@ -254,7 +254,7 @@ static void sendCtrlCommand(runcamDevice_t *device, rcsplit_ctrl_argument_e argu
// get the device info(firmware version, protocol version and features, see the // get the device info(firmware version, protocol version and features, see the
// definition of runcamDeviceInfo_t to know more) // definition of runcamDeviceInfo_t to know more)
static bool runcamDeviceGetDeviceInfo(runcamDevice_t *device, uint8_t *outputBuffer) static bool runcamDeviceGetDeviceInfo(runcamDevice_t *device, uint8_t *outputBuffer)
{ {
// Send "who are you" command to device to detect the device whether is running RCSplit FW1.0 or RCSplit FW1.1 // Send "who are you" command to device to detect the device whether is running RCSplit FW1.0 or RCSplit FW1.1
int max_retries = 2; int max_retries = 2;
@ -301,7 +301,7 @@ static bool runcamDeviceGetDeviceInfo(runcamDevice_t *device, uint8_t *outputBuf
} }
} }
return runcamDeviceSendRequestAndWaitingResp(device, RCDEVICE_PROTOCOL_COMMAND_GET_DEVICE_INFO, NULL, 0, outputBuffer, NULL); return runcamDeviceSendRequestAndWaitingResp(device, RCDEVICE_PROTOCOL_COMMAND_GET_DEVICE_INFO, NULL, 0, outputBuffer, NULL);
} }
static bool runcamDeviceSend5KeyOSDCableConnectionEvent(runcamDevice_t *device, uint8_t operation, uint8_t *outActionID, uint8_t *outErrorCode) static bool runcamDeviceSend5KeyOSDCableConnectionEvent(runcamDevice_t *device, uint8_t operation, uint8_t *outActionID, uint8_t *outErrorCode)
@ -514,7 +514,7 @@ static bool runcamDeviceDecodeSettings(sbuf_t *buf, runcamDeviceSetting_t *outSe
case RCDP_SETTING_PARSE_WAITING_ID: { case RCDP_SETTING_PARSE_WAITING_ID: {
settingIterator->id = sbufReadU8(buf); settingIterator->id = sbufReadU8(buf);
parseStep = RCDP_SETTING_PARSE_WAITING_NAME; parseStep = RCDP_SETTING_PARSE_WAITING_NAME;
} }
break; break;
case RCDP_SETTING_PARSE_WAITING_NAME: { case RCDP_SETTING_PARSE_WAITING_NAME: {
const char *str = (const char *)sbufConstPtr(buf); const char *str = (const char *)sbufConstPtr(buf);
@ -522,9 +522,9 @@ static bool runcamDeviceDecodeSettings(sbuf_t *buf, runcamDeviceSetting_t *outSe
memset(settingIterator->name, 0, RCDEVICE_PROTOCOL_MAX_SETTING_NAME_LENGTH); memset(settingIterator->name, 0, RCDEVICE_PROTOCOL_MAX_SETTING_NAME_LENGTH);
strncpy(settingIterator->name, str, RCDEVICE_PROTOCOL_MAX_SETTING_NAME_LENGTH); strncpy(settingIterator->name, str, RCDEVICE_PROTOCOL_MAX_SETTING_NAME_LENGTH);
sbufAdvance(buf, nameLen); sbufAdvance(buf, nameLen);
parseStep = RCDP_SETTING_PARSE_WAITING_VALUE; parseStep = RCDP_SETTING_PARSE_WAITING_VALUE;
} }
break; break;
case RCDP_SETTING_PARSE_WAITING_VALUE: { case RCDP_SETTING_PARSE_WAITING_VALUE: {
const char *str = (const char *)sbufConstPtr(buf); const char *str = (const char *)sbufConstPtr(buf);
@ -535,7 +535,7 @@ static bool runcamDeviceDecodeSettings(sbuf_t *buf, runcamDeviceSetting_t *outSe
parseStep = RCDP_SETTING_PARSE_WAITING_ID; parseStep = RCDP_SETTING_PARSE_WAITING_ID;
settingIterator++; settingIterator++;
} }
break; break;
} }
} }
@ -627,7 +627,7 @@ bool runcamDeviceGetSettings(runcamDevice_t *device, uint8_t parentSettingID, ru
if (!runcamDeviceDecodeSettings(&dataBuf, outSettingList, maxSettingItemCount)) { if (!runcamDeviceDecodeSettings(&dataBuf, outSettingList, maxSettingItemCount)) {
return false; return false;
} }
return true; return true;
} }
@ -648,13 +648,13 @@ static bool runcamDeviceDecodeSettingDetail(sbuf_t *buf, runcamDeviceSettingDeta
outSettingDetail->stepSize = sbufReadU8(buf); outSettingDetail->stepSize = sbufReadU8(buf);
break; break;
case RCDEVICE_PROTOCOL_SETTINGTYPE_UINT16: case RCDEVICE_PROTOCOL_SETTINGTYPE_UINT16:
case RCDEVICE_PROTOCOL_SETTINGTYPE_INT16: case RCDEVICE_PROTOCOL_SETTINGTYPE_INT16:
outSettingDetail->value = sbufReadU16(buf); outSettingDetail->value = sbufReadU16(buf);
outSettingDetail->minValue = sbufReadU16(buf); outSettingDetail->minValue = sbufReadU16(buf);
outSettingDetail->maxValue = sbufReadU16(buf); outSettingDetail->maxValue = sbufReadU16(buf);
outSettingDetail->stepSize = sbufReadU8(buf); outSettingDetail->stepSize = sbufReadU8(buf);
break; break;
case RCDEVICE_PROTOCOL_SETTINGTYPE_FLOAT: case RCDEVICE_PROTOCOL_SETTINGTYPE_FLOAT:
outSettingDetail->value = sbufReadU32(buf); outSettingDetail->value = sbufReadU32(buf);
outSettingDetail->minValue = sbufReadU32(buf); outSettingDetail->minValue = sbufReadU32(buf);
outSettingDetail->maxValue = sbufReadU32(buf); outSettingDetail->maxValue = sbufReadU32(buf);
@ -684,7 +684,7 @@ static bool runcamDeviceDecodeSettingDetail(sbuf_t *buf, runcamDeviceSettingDeta
result = strtok(NULL, delims); result = strtok(NULL, delims);
i++; i++;
} }
} }
break; break;
case RCDEVICE_PROTOCOL_SETTINGTYPE_STRING: { case RCDEVICE_PROTOCOL_SETTINGTYPE_STRING: {
const char *tmp = (const char *)sbufConstPtr(buf); const char *tmp = (const char *)sbufConstPtr(buf);
@ -692,7 +692,7 @@ static bool runcamDeviceDecodeSettingDetail(sbuf_t *buf, runcamDeviceSettingDeta
sbufAdvance(buf, strlen(tmp) + 1); sbufAdvance(buf, strlen(tmp) + 1);
outSettingDetail->maxStringSize = sbufReadU8(buf); outSettingDetail->maxStringSize = sbufReadU8(buf);
} }
break; break;
case RCDEVICE_PROTOCOL_SETTINGTYPE_FOLDER: case RCDEVICE_PROTOCOL_SETTINGTYPE_FOLDER:
break; break;
@ -743,7 +743,7 @@ bool runcamDeviceWriteSetting(runcamDevice_t *device, uint8_t settingID, uint8_t
} }
memset(response, 0, sizeof(runcamDeviceWriteSettingResponse_t)); memset(response, 0, sizeof(runcamDeviceWriteSettingResponse_t));
response->resultCode = 1; // initialize the result code to failed response->resultCode = 1; // initialize the result code to failed
uint8_t paramsBufLen = sizeof(uint8_t) + paramDataLen; uint8_t paramsBufLen = sizeof(uint8_t) + paramDataLen;
uint8_t paramsBuf[RCDEVICE_PROTOCOL_MAX_DATA_SIZE]; uint8_t paramsBuf[RCDEVICE_PROTOCOL_MAX_DATA_SIZE];

View file

@ -88,9 +88,9 @@ typedef enum {
} rcdevice_5key_simulation_operation_e; } rcdevice_5key_simulation_operation_e;
// Operation of RCDEVICE_PROTOCOL_COMMAND_5KEY_CONNECTION // Operation of RCDEVICE_PROTOCOL_COMMAND_5KEY_CONNECTION
typedef enum { typedef enum {
RCDEVICE_PROTOCOL_5KEY_CONNECTION_OPEN = 0x01, RCDEVICE_PROTOCOL_5KEY_CONNECTION_OPEN = 0x01,
RCDEVICE_PROTOCOL_5KEY_CONNECTION_CLOSE = 0x02 RCDEVICE_PROTOCOL_5KEY_CONNECTION_CLOSE = 0x02
} RCDEVICE_5key_connection_event_e; } RCDEVICE_5key_connection_event_e;
typedef enum { typedef enum {

View file

@ -239,7 +239,7 @@ static void rcdevice5KeySimulationProcess(timeUs_t currentTimeUs)
needRelease = false; needRelease = false;
} else { } else {
rcdeviceInMenu = false; rcdeviceInMenu = false;
} }
} }
} }
return; return;

View file

@ -230,9 +230,9 @@ uint32_t rcdeviceOSDTxBytesFree(const displayPort_t *displayPort)
return INT32_MAX; return INT32_MAX;
} }
int rcdeviceScreenSize(const displayPort_t *displayPort) int rcdeviceScreenSize(const displayPort_t *displayPort)
{ {
return displayPort->rows * displayPort->cols; return displayPort->rows * displayPort->cols;
} }
#endif #endif

View file

@ -17,7 +17,7 @@
#include "platform.h" #include "platform.h"
#ifdef USE_SERIAL_RX #ifdef USE_SERIAL_RX
#if defined(USE_SPEKTRUM_REAL_RSSI) || defined(USE_SPEKTRUM_FAKE_RSSI) #if defined(USE_SPEKTRUM_REAL_RSSI) || defined(USE_SPEKTRUM_FAKE_RSSI)
#include "config/feature.h" #include "config/feature.h"
#include "common/utils.h" #include "common/utils.h"
@ -189,5 +189,5 @@ void spektrumHandleRSSI(volatile uint8_t spekFrame[]) {
} }
#endif // USE_SPEKTRUM_FAKE_RSSI #endif // USE_SPEKTRUM_FAKE_RSSI
} }
#endif // USE_SPEKTRUM_REAL_RSSI || USE_SPEKTRUM_FAKE_RSSI #endif // USE_SPEKTRUM_REAL_RSSI || USE_SPEKTRUM_FAKE_RSSI
#endif // USE_SERIAL_RX #endif // USE_SERIAL_RX

View file

@ -761,16 +761,16 @@ void vtxSAProcess(timeUs_t currentTimeUs)
// dprintf(("process: resending 0x%x\r\n", sa_outstanding)); // dprintf(("process: resending 0x%x\r\n", sa_outstanding));
// XXX Todo: Resend termination and possible offline transition // XXX Todo: Resend termination and possible offline transition
saResendCmd(); saResendCmd();
lastCommandSentMs = nowMs; lastCommandSentMs = nowMs;
} else if (!saQueueEmpty()) { } else if (!saQueueEmpty()) {
// Command pending. Send it. // Command pending. Send it.
// dprintf(("process: sending queue\r\n")); // dprintf(("process: sending queue\r\n"));
saSendQueue(); saSendQueue();
lastCommandSentMs = nowMs; lastCommandSentMs = nowMs;
} else if ((nowMs - lastCommandSentMs < SMARTAUDIO_POLLING_WINDOW) && (nowMs - sa_lastTransmissionMs >= SMARTAUDIO_POLLING_INTERVAL)) { } else if ((nowMs - lastCommandSentMs < SMARTAUDIO_POLLING_WINDOW) && (nowMs - sa_lastTransmissionMs >= SMARTAUDIO_POLLING_INTERVAL)) {
//dprintf(("process: sending status change polling\r\n")); //dprintf(("process: sending status change polling\r\n"));
saGetSettings(); saGetSettings();
saSendQueue(); saSendQueue();
} }
} }
@ -779,123 +779,123 @@ void vtxSAProcess(timeUs_t currentTimeUs)
vtxDevType_e vtxSAGetDeviceType(void) vtxDevType_e vtxSAGetDeviceType(void)
{ {
return VTXDEV_SMARTAUDIO; return VTXDEV_SMARTAUDIO;
} }
bool vtxSAIsReady(void) bool vtxSAIsReady(void)
{ {
return !(saDevice.version == 0); return !(saDevice.version == 0);
} }
void vtxSASetBandAndChannel(uint8_t band, uint8_t channel) void vtxSASetBandAndChannel(uint8_t band, uint8_t channel)
{ {
if (saValidateBandAndChannel(band, channel)) { if (saValidateBandAndChannel(band, channel)) {
saSetBandAndChannel(band - 1, channel - 1); saSetBandAndChannel(band - 1, channel - 1);
} }
} }
void vtxSASetPowerByIndex(uint8_t index) void vtxSASetPowerByIndex(uint8_t index)
{ {
if (index == 0) { if (index == 0) {
// SmartAudio doesn't support power off. // SmartAudio doesn't support power off.
return; return;
} }
saSetPowerByIndex(index - 1); saSetPowerByIndex(index - 1);
} }
void vtxSASetPitMode(uint8_t onoff) void vtxSASetPitMode(uint8_t onoff)
{ {
if (!(vtxSAIsReady() && (saDevice.version == 2))) { if (!(vtxSAIsReady() && (saDevice.version == 2))) {
return; return;
} }
if (onoff) { if (onoff) {
// SmartAudio can not turn pit mode on by software. // SmartAudio can not turn pit mode on by software.
return; return;
} }
uint8_t newmode = SA_MODE_CLR_PITMODE; uint8_t newmode = SA_MODE_CLR_PITMODE;
if (saDevice.mode & SA_MODE_GET_IN_RANGE_PITMODE) { if (saDevice.mode & SA_MODE_GET_IN_RANGE_PITMODE) {
newmode |= SA_MODE_SET_IN_RANGE_PITMODE; newmode |= SA_MODE_SET_IN_RANGE_PITMODE;
} }
if (saDevice.mode & SA_MODE_GET_OUT_RANGE_PITMODE) { if (saDevice.mode & SA_MODE_GET_OUT_RANGE_PITMODE) {
newmode |= SA_MODE_SET_OUT_RANGE_PITMODE; newmode |= SA_MODE_SET_OUT_RANGE_PITMODE;
} }
saSetMode(newmode); saSetMode(newmode);
return; return;
} }
void vtxSASetFreq(uint16_t freq) void vtxSASetFreq(uint16_t freq)
{ {
if (saValidateFreq(freq)) { if (saValidateFreq(freq)) {
saSetMode(0); //need to be in FREE mode to set freq saSetMode(0); //need to be in FREE mode to set freq
saSetFreq(freq); saSetFreq(freq);
} }
} }
bool vtxSAGetBandAndChannel(uint8_t *pBand, uint8_t *pChannel) bool vtxSAGetBandAndChannel(uint8_t *pBand, uint8_t *pChannel)
{ {
if (!vtxSAIsReady()) { if (!vtxSAIsReady()) {
return false; return false;
} }
// if in user-freq mode then report band as zero // if in user-freq mode then report band as zero
*pBand = (saDevice.mode & SA_MODE_GET_FREQ_BY_FREQ) ? 0 : *pBand = (saDevice.mode & SA_MODE_GET_FREQ_BY_FREQ) ? 0 :
(SA_DEVICE_CHVAL_TO_BAND(saDevice.channel) + 1); (SA_DEVICE_CHVAL_TO_BAND(saDevice.channel) + 1);
*pChannel = SA_DEVICE_CHVAL_TO_CHANNEL(saDevice.channel) + 1; *pChannel = SA_DEVICE_CHVAL_TO_CHANNEL(saDevice.channel) + 1;
return true; return true;
} }
bool vtxSAGetPowerIndex(uint8_t *pIndex) bool vtxSAGetPowerIndex(uint8_t *pIndex)
{ {
if (!vtxSAIsReady()) { if (!vtxSAIsReady()) {
return false; return false;
} }
*pIndex = ((saDevice.version == 1) ? saDacToPowerIndex(saDevice.power) : saDevice.power) + 1; *pIndex = ((saDevice.version == 1) ? saDacToPowerIndex(saDevice.power) : saDevice.power) + 1;
return true; return true;
} }
bool vtxSAGetPitMode(uint8_t *pOnOff) bool vtxSAGetPitMode(uint8_t *pOnOff)
{ {
if (!(vtxSAIsReady() && (saDevice.version == 2))) { if (!(vtxSAIsReady() && (saDevice.version == 2))) {
return false; return false;
} }
*pOnOff = (saDevice.mode & SA_MODE_GET_PITMODE) ? 1 : 0; *pOnOff = (saDevice.mode & SA_MODE_GET_PITMODE) ? 1 : 0;
return true; return true;
} }
bool vtxSAGetFreq(uint16_t *pFreq) bool vtxSAGetFreq(uint16_t *pFreq)
{ {
if (!vtxSAIsReady()) { if (!vtxSAIsReady()) {
return false; return false;
} }
// if not in user-freq mode then convert band/chan to frequency // if not in user-freq mode then convert band/chan to frequency
*pFreq = (saDevice.mode & SA_MODE_GET_FREQ_BY_FREQ) ? saDevice.freq : *pFreq = (saDevice.mode & SA_MODE_GET_FREQ_BY_FREQ) ? saDevice.freq :
vtx58_Bandchan2Freq(SA_DEVICE_CHVAL_TO_BAND(saDevice.channel) + 1, vtx58_Bandchan2Freq(SA_DEVICE_CHVAL_TO_BAND(saDevice.channel) + 1,
SA_DEVICE_CHVAL_TO_CHANNEL(saDevice.channel) + 1); SA_DEVICE_CHVAL_TO_CHANNEL(saDevice.channel) + 1);
return true; return true;
} }
static const vtxVTable_t saVTable = { static const vtxVTable_t saVTable = {
.process = vtxSAProcess, .process = vtxSAProcess,
.getDeviceType = vtxSAGetDeviceType, .getDeviceType = vtxSAGetDeviceType,
.isReady = vtxSAIsReady, .isReady = vtxSAIsReady,
.setBandAndChannel = vtxSASetBandAndChannel, .setBandAndChannel = vtxSASetBandAndChannel,
.setPowerByIndex = vtxSASetPowerByIndex, .setPowerByIndex = vtxSASetPowerByIndex,
.setPitMode = vtxSASetPitMode, .setPitMode = vtxSASetPitMode,
.setFrequency = vtxSASetFreq, .setFrequency = vtxSASetFreq,
.getBandAndChannel = vtxSAGetBandAndChannel, .getBandAndChannel = vtxSAGetBandAndChannel,
.getPowerIndex = vtxSAGetPowerIndex, .getPowerIndex = vtxSAGetPowerIndex,
.getPitMode = vtxSAGetPitMode, .getPitMode = vtxSAGetPitMode,
.getFrequency = vtxSAGetFreq, .getFrequency = vtxSAGetFreq,
}; };
#endif // VTX_COMMON #endif // VTX_COMMON

View file

@ -333,7 +333,7 @@ rx_spi_received_e frSkyXHandlePacket(uint8_t * const packet, uint8_t * const pro
FALLTHROUGH; FALLTHROUGH;
// here FS code could be // here FS code could be
case STATE_DATA: case STATE_DATA:
if (IORead(gdoPin) && (frameReceived == false)){ if (IORead(gdoPin) && (frameReceived == false)){
uint8_t ccLen = cc2500ReadReg(CC2500_3B_RXBYTES | CC2500_READ_BURST) & 0x7F; uint8_t ccLen = cc2500ReadReg(CC2500_3B_RXBYTES | CC2500_READ_BURST) & 0x7F;
ccLen = cc2500ReadReg(CC2500_3B_RXBYTES | CC2500_READ_BURST) & 0x7F; // read 2 times to avoid reading errors ccLen = cc2500ReadReg(CC2500_3B_RXBYTES | CC2500_READ_BURST) & 0x7F; // read 2 times to avoid reading errors
@ -341,7 +341,7 @@ rx_spi_received_e frSkyXHandlePacket(uint8_t * const packet, uint8_t * const pro
ccLen = 32; ccLen = 32;
} }
if (ccLen) { if (ccLen) {
cc2500ReadFifo(packet, ccLen); cc2500ReadFifo(packet, ccLen);
uint16_t lcrc= calculateCrc(&packet[3], (ccLen - 7)); uint16_t lcrc= calculateCrc(&packet[3], (ccLen - 7));
if((lcrc >> 8) == packet[ccLen-4] && (lcrc&0x00FF) == packet[ccLen - 3]){ // check calculateCrc if((lcrc >> 8) == packet[ccLen-4] && (lcrc&0x00FF) == packet[ccLen - 3]){ // check calculateCrc
if (packet[0] == 0x1D) { if (packet[0] == 0x1D) {
@ -419,7 +419,7 @@ rx_spi_received_e frSkyXHandlePacket(uint8_t * const packet, uint8_t * const pro
packetTimerUs = micros(); packetTimerUs = micros();
frameReceived = true; // no need to process frame again. frameReceived = true; // no need to process frame again.
} }
} }
} }
} }
} }

View file

@ -64,7 +64,7 @@ rangefinder_t rangefinder;
#define RANGEFINDER_HARDWARE_TIMEOUT_MS 500 // Accept 500ms of non-responsive sensor, report HW failure otherwise #define RANGEFINDER_HARDWARE_TIMEOUT_MS 500 // Accept 500ms of non-responsive sensor, report HW failure otherwise
#define RANGEFINDER_DYNAMIC_THRESHOLD 600 //Used to determine max. usable rangefinder disatance #define RANGEFINDER_DYNAMIC_THRESHOLD 600 //Used to determine max. usable rangefinder disatance
#define RANGEFINDER_DYNAMIC_FACTOR 75 #define RANGEFINDER_DYNAMIC_FACTOR 75
PG_REGISTER_WITH_RESET_TEMPLATE(rangefinderConfig_t, rangefinderConfig, PG_RANGEFINDER_CONFIG, 0); PG_REGISTER_WITH_RESET_TEMPLATE(rangefinderConfig_t, rangefinderConfig, PG_RANGEFINDER_CONFIG, 0);
@ -274,7 +274,7 @@ bool isSurfaceAltitudeValid() {
/* /*
* Preconditions: raw and calculated altidude > 0 * Preconditions: raw and calculated altidude > 0
* SNR lower than threshold * SNR lower than threshold
*/ */
if ( if (
rangefinder.calculatedAltitude > 0 && rangefinder.calculatedAltitude > 0 &&
rangefinder.rawAltitude > 0 && rangefinder.rawAltitude > 0 &&

View file

@ -47,7 +47,7 @@ typedef struct rangefinder_s {
int32_t rawAltitude; int32_t rawAltitude;
int32_t calculatedAltitude; int32_t calculatedAltitude;
timeMs_t lastValidResponseTimeMs; timeMs_t lastValidResponseTimeMs;
bool snrThresholdReached; bool snrThresholdReached;
int32_t dynamicDistanceThreshold; int32_t dynamicDistanceThreshold;
int16_t snr; int16_t snr;

View file

@ -41,14 +41,14 @@ const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
{ TIM4, IO_TAG(PB8), TIM_Channel_3, TIM_USE_MOTOR, 1, GPIO_AF_2, NULL, 0}, // PWM13 - OUT5 { TIM4, IO_TAG(PB8), TIM_Channel_3, TIM_USE_MOTOR, 1, GPIO_AF_2, NULL, 0}, // PWM13 - OUT5
{ TIM4, IO_TAG(PB9), TIM_Channel_4, TIM_USE_MOTOR, 1, GPIO_AF_2, NULL, 0} // PWM14 - OUT6 { TIM4, IO_TAG(PB9), TIM_Channel_4, TIM_USE_MOTOR, 1, GPIO_AF_2, NULL, 0} // PWM14 - OUT6
*/ */
DEF_TIM(TIM2, CH1, PA0, TIM_USE_PPM | TIM_USE_PWM, 0), DEF_TIM(TIM2, CH1, PA0, TIM_USE_PPM | TIM_USE_PWM, 0),
DEF_TIM(TIM2, CH2, PA1, TIM_USE_PWM, 0), DEF_TIM(TIM2, CH2, PA1, TIM_USE_PWM, 0),
DEF_TIM(TIM2, CH3, PA2, TIM_USE_PWM, 0), DEF_TIM(TIM2, CH3, PA2, TIM_USE_PWM, 0),
DEF_TIM(TIM2, CH4, PA3, TIM_USE_PWM, 0), DEF_TIM(TIM2, CH4, PA3, TIM_USE_PWM, 0),
DEF_TIM(TIM3, CH1, PA6, TIM_USE_PWM | TIM_USE_LED, 0), DEF_TIM(TIM3, CH1, PA6, TIM_USE_PWM | TIM_USE_LED, 0),
DEF_TIM(TIM3, CH2, PA7, TIM_USE_PWM, 0), DEF_TIM(TIM3, CH2, PA7, TIM_USE_PWM, 0),
DEF_TIM(TIM3, CH3, PB0, TIM_USE_PWM, 0), DEF_TIM(TIM3, CH3, PB0, TIM_USE_PWM, 0),
DEF_TIM(TIM3, CH4, PB1, TIM_USE_PWM, 0), DEF_TIM(TIM3, CH4, PB1, TIM_USE_PWM, 0),
DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, 0), // DMA1_CH2 DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, 0), // DMA1_CH2
DEF_TIM(TIM4, CH1, PA11, TIM_USE_MOTOR, 0), // DMA1_CH1 DEF_TIM(TIM4, CH1, PA11, TIM_USE_MOTOR, 0), // DMA1_CH1
DEF_TIM(TIM8, CH1, PB6, TIM_USE_MOTOR, 0), // DMA2_CH3 DEF_TIM(TIM8, CH1, PB6, TIM_USE_MOTOR, 0), // DMA2_CH3

View file

@ -100,7 +100,7 @@ void targetConfiguration(void)
featureSet((FEATURE_DYNAMIC_FILTER | FEATURE_AIRMODE | FEATURE_ANTI_GRAVITY) ^ FEATURE_RX_PARALLEL_PWM); featureSet((FEATURE_DYNAMIC_FILTER | FEATURE_AIRMODE | FEATURE_ANTI_GRAVITY) ^ FEATURE_RX_PARALLEL_PWM);
/* AlienWhoop PIDs based on Ole Gravy Leg (aka Matt Williamson's) PIDs /* AlienWhoop PIDs based on Ole Gravy Leg (aka Matt Williamson's) PIDs
*/ */
for (uint8_t pidProfileIndex = 0; pidProfileIndex < MAX_PROFILE_COUNT; pidProfileIndex++) { for (uint8_t pidProfileIndex = 0; pidProfileIndex < MAX_PROFILE_COUNT; pidProfileIndex++) {
pidProfile_t *pidProfile = pidProfilesMutable(pidProfileIndex); pidProfile_t *pidProfile = pidProfilesMutable(pidProfileIndex);

View file

@ -45,10 +45,10 @@
* taken to ensure functionality on both F4 and F7 (STM32F405RGT and STM32F722RET) * taken to ensure functionality on both F4 and F7 (STM32F405RGT and STM32F722RET)
*/ */
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM8, CH4, PC9, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM8, CH4, PC9, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM3, CH3, PC8, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM3, CH3, PC8, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM3, CH2, PC7, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM3, CH2, PC7, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM8, CH1, PC6, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM8, CH1, PC6, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM5, CH1, PA0, TIM_USE_LED, 0, 0), DEF_TIM(TIM5, CH1, PA0, TIM_USE_LED, 0, 0),
}; };

View file

@ -29,5 +29,5 @@ const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM15, CH1, PB14, TIM_USE_MOTOR, 0), // PWM2 - PB14 - DMA1_CH5 - TIM1_CH2N, *TIM15_CH1 DEF_TIM(TIM15, CH1, PB14, TIM_USE_MOTOR, 0), // PWM2 - PB14 - DMA1_CH5 - TIM1_CH2N, *TIM15_CH1
DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, 0), // PWM3 - PA8 - DMA1_CH2 - *TIM1_CH1, TIM4_ETR DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, 0), // PWM3 - PA8 - DMA1_CH2 - *TIM1_CH1, TIM4_ETR
DEF_TIM(TIM8, CH2N, PB0, TIM_USE_MOTOR, 0), // PWM4 - PB0 - DMA2_CH5 - TIM3_CH3, TIM1_CH2N, *TIM8_CH2N DEF_TIM(TIM8, CH2N, PB0, TIM_USE_MOTOR, 0), // PWM4 - PB0 - DMA2_CH5 - TIM3_CH3, TIM1_CH2N, *TIM8_CH2N
DEF_TIM(TIM16, CH1, PB8, TIM_USE_TRANSPONDER, 0), DEF_TIM(TIM16, CH1, PB8, TIM_USE_TRANSPONDER, 0),
}; };

View file

@ -38,7 +38,7 @@ const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM4, CH2, PB7, TIM_USE_MOTOR, 0), // S3_OUT DEF_TIM(TIM4, CH2, PB7, TIM_USE_MOTOR, 0), // S3_OUT
DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, 0), // S4_OUT DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, 0), // S4_OUT
DEF_TIM(TIM4, CH1, PB6, TIM_USE_MOTOR, 0), // S1_IN/ DEF_TIM(TIM4, CH1, PB6, TIM_USE_MOTOR, 0), // S1_IN/
// DEF_TIM(TIM3, CH1, PB4, TIM_USE_MOTOR, 1), // S5_OUT <--Moved to allow Parallel PWM with proper ESC // DEF_TIM(TIM3, CH1, PB4, TIM_USE_MOTOR, 1), // S5_OUT <--Moved to allow Parallel PWM with proper ESC
DEF_TIM(TIM2, CH3, PA2, TIM_USE_MOTOR, 0), // S6_OUT DEF_TIM(TIM2, CH3, PA2, TIM_USE_MOTOR, 0), // S6_OUT
}; };

View file

@ -64,7 +64,7 @@ void targetBusInit(void)
i2cHardwareConfigure(i2cConfig()); i2cHardwareConfigure(i2cConfig());
i2cInit(I2CDEV_2); i2cInit(I2CDEV_2);
bstInit(BST_DEVICE); bstInit(BST_DEVICE);
} }
#endif #endif

View file

@ -25,10 +25,10 @@
#include "drivers/dma.h" #include "drivers/dma.h"
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM2, CH4, PA3, TIM_USE_PPM, 0), DEF_TIM(TIM2, CH4, PA3, TIM_USE_PPM, 0),
DEF_TIM(TIM17, CH1N, PB7, TIM_USE_MOTOR, 0), DEF_TIM(TIM17, CH1N, PB7, TIM_USE_MOTOR, 0),
DEF_TIM(TIM8, CH1, PB6, TIM_USE_MOTOR, 0), DEF_TIM(TIM8, CH1, PB6, TIM_USE_MOTOR, 0),
DEF_TIM(TIM8, CH3, PB9, TIM_USE_MOTOR, 0), DEF_TIM(TIM8, CH3, PB9, TIM_USE_MOTOR, 0),
DEF_TIM(TIM8, CH2, PB8, TIM_USE_MOTOR, 0), DEF_TIM(TIM8, CH2, PB8, TIM_USE_MOTOR, 0),
DEF_TIM(TIM16, CH1, PA6, TIM_USE_LED, 0), DEF_TIM(TIM16, CH1, PA6, TIM_USE_LED, 0),
}; };

View file

@ -33,7 +33,7 @@ const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM2, CH2, PA1, TIM_USE_MOTOR, 0), // PWM5 - PA1 - *TIM2_CH2, TIM15_CH1N DEF_TIM(TIM2, CH2, PA1, TIM_USE_MOTOR, 0), // PWM5 - PA1 - *TIM2_CH2, TIM15_CH1N
DEF_TIM(TIM2, CH3, PA2, TIM_USE_MOTOR, 0), // PWM6 - PA2 - *TIM2_CH3, !TIM15_CH1 DEF_TIM(TIM2, CH3, PA2, TIM_USE_MOTOR, 0), // PWM6 - PA2 - *TIM2_CH3, !TIM15_CH1
DEF_TIM(TIM3, CH2, PA4, TIM_USE_PPM, 0), // PPM - PA4 DEF_TIM(TIM3, CH2, PA4, TIM_USE_PPM, 0), // PPM - PA4
DEF_TIM(TIM16, CH1, PB8, TIM_USE_LED, 0), DEF_TIM(TIM16, CH1, PB8, TIM_USE_LED, 0),
DEF_TIM(TIM1, CH1, PA8, TIM_USE_TRANSPONDER, 0), // TRANSPONDER - PA8 DEF_TIM(TIM1, CH1, PA8, TIM_USE_TRANSPONDER, 0), // TRANSPONDER - PA8
#else #else
DEF_TIM(TIM3, CH2, PA4, TIM_USE_MOTOR, 0), // PWM1 - PA4 - *TIM3_CH2 DEF_TIM(TIM3, CH2, PA4, TIM_USE_MOTOR, 0), // PWM1 - PA4 - *TIM3_CH2
@ -43,7 +43,7 @@ const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM2, CH2, PA1, TIM_USE_MOTOR, 0), // PWM5 - PA1 - *TIM2_CH2, TIM15_CH1N DEF_TIM(TIM2, CH2, PA1, TIM_USE_MOTOR, 0), // PWM5 - PA1 - *TIM2_CH2, TIM15_CH1N
DEF_TIM(TIM2, CH3, PA2, TIM_USE_MOTOR, 0), // PWM6 - PA2 - *TIM2_CH3, !TIM15_CH1 DEF_TIM(TIM2, CH3, PA2, TIM_USE_MOTOR, 0), // PWM6 - PA2 - *TIM2_CH3, !TIM15_CH1
DEF_TIM(TIM17, CH1, PA7, TIM_USE_PPM, 0), // PPM - PA7 - *TIM17_CH1, TIM1_CH1N, TIM8_CH1 DEF_TIM(TIM17, CH1, PA7, TIM_USE_PPM, 0), // PPM - PA7 - *TIM17_CH1, TIM1_CH1N, TIM8_CH1
DEF_TIM(TIM16, CH1, PB8, TIM_USE_LED, 0), DEF_TIM(TIM16, CH1, PB8, TIM_USE_LED, 0),
DEF_TIM(TIM1, CH1, PA8, TIM_USE_TRANSPONDER, 0), // TRANSPONDER - PA8 DEF_TIM(TIM1, CH1, PA8, TIM_USE_TRANSPONDER, 0), // TRANSPONDER - PA8
#endif #endif
}; };

View file

@ -31,7 +31,7 @@ const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM1, CH2, PE11, TIM_USE_MOTOR, 0, 1), // M4 , DMA2_ST4 DEF_TIM(TIM1, CH2, PE11, TIM_USE_MOTOR, 0, 1), // M4 , DMA2_ST4
DEF_TIM(TIM8, CH4, PC9, TIM_USE_MOTOR, 0, 0), // M5 , DMA2_ST7 DEF_TIM(TIM8, CH4, PC9, TIM_USE_MOTOR, 0, 0), // M5 , DMA2_ST7
DEF_TIM(TIM5, CH4, PA3, TIM_USE_MOTOR, 0, 0), // M6 , DMA1_ST1 DEF_TIM(TIM5, CH4, PA3, TIM_USE_MOTOR, 0, 0), // M6 , DMA1_ST1
DEF_TIM(TIM4, CH1, PD12, TIM_USE_LED, 0, 0), // LED_TRIP , DMA1_ST0 DEF_TIM(TIM4, CH1, PD12, TIM_USE_LED, 0, 0), // LED_TRIP , DMA1_ST0
}; };

View file

@ -147,8 +147,8 @@
#define USE_I2C #define USE_I2C
#define USE_I2C_DEVICE_1 #define USE_I2C_DEVICE_1
#define I2C_DEVICE (I2CDEV_1) #define I2C_DEVICE (I2CDEV_1)
#define I2C1_SCL PB6 #define I2C1_SCL PB6
#define I2C1_SDA PB7 #define I2C1_SDA PB7
#define USE_BARO #define USE_BARO
#define USE_BARO_BMP280 #define USE_BARO_BMP280

View file

@ -26,24 +26,24 @@
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
#ifdef KISSCC #ifdef KISSCC
DEF_TIM(TIM1, CH2N, PB14, TIM_USE_MOTOR, 0), DEF_TIM(TIM1, CH2N, PB14, TIM_USE_MOTOR, 0),
DEF_TIM(TIM8, CH2N, PB0, TIM_USE_MOTOR, 0), DEF_TIM(TIM8, CH2N, PB0, TIM_USE_MOTOR, 0),
DEF_TIM(TIM15, CH1N, PB15, TIM_USE_MOTOR, 0), DEF_TIM(TIM15, CH1N, PB15, TIM_USE_MOTOR, 0),
DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, 0), DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, 0),
DEF_TIM(TIM3, CH1, PA6, TIM_USE_MOTOR, 0), DEF_TIM(TIM3, CH1, PA6, TIM_USE_MOTOR, 0),
DEF_TIM(TIM17, CH1, PA7, TIM_USE_MOTOR, 0), DEF_TIM(TIM17, CH1, PA7, TIM_USE_MOTOR, 0),
DEF_TIM(TIM16, CH1N, PA13, TIM_USE_PWM, 0), DEF_TIM(TIM16, CH1N, PA13, TIM_USE_PWM, 0),
#else #else
DEF_TIM(TIM1, CH2N, PB14, TIM_USE_MOTOR, TIMER_OUTPUT_INVERTED), DEF_TIM(TIM1, CH2N, PB14, TIM_USE_MOTOR, TIMER_OUTPUT_INVERTED),
DEF_TIM(TIM8, CH2N, PB0, TIM_USE_MOTOR, TIMER_OUTPUT_INVERTED), DEF_TIM(TIM8, CH2N, PB0, TIM_USE_MOTOR, TIMER_OUTPUT_INVERTED),
DEF_TIM(TIM15, CH1N, PB15, TIM_USE_MOTOR, TIMER_OUTPUT_INVERTED), DEF_TIM(TIM15, CH1N, PB15, TIM_USE_MOTOR, TIMER_OUTPUT_INVERTED),
DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, TIMER_OUTPUT_INVERTED), DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, TIMER_OUTPUT_INVERTED),
DEF_TIM(TIM3, CH1, PA6, TIM_USE_MOTOR | TIM_USE_LED, TIMER_OUTPUT_INVERTED), DEF_TIM(TIM3, CH1, PA6, TIM_USE_MOTOR | TIM_USE_LED, TIMER_OUTPUT_INVERTED),
DEF_TIM(TIM17, CH1, PA7, TIM_USE_MOTOR, TIMER_OUTPUT_INVERTED), DEF_TIM(TIM17, CH1, PA7, TIM_USE_MOTOR, TIMER_OUTPUT_INVERTED),
DEF_TIM(TIM4, CH3, PA13, TIM_USE_PWM, 0), // On KISSFC TIM16 did not work, using TIM4 works DEF_TIM(TIM4, CH3, PA13, TIM_USE_PWM, 0), // On KISSFC TIM16 did not work, using TIM4 works
#endif #endif
DEF_TIM(TIM2, CH2, PB3, TIM_USE_PWM | TIM_USE_PPM, 0), DEF_TIM(TIM2, CH2, PB3, TIM_USE_PWM | TIM_USE_PPM, 0),
DEF_TIM(TIM2, CH1, PA15, TIM_USE_PWM, 0), DEF_TIM(TIM2, CH1, PA15, TIM_USE_PWM, 0),
DEF_TIM(TIM2, CH3, PA2, TIM_USE_PWM, 0), DEF_TIM(TIM2, CH3, PA2, TIM_USE_PWM, 0),
DEF_TIM(TIM2, CH4, PB11, TIM_USE_PWM, 0), DEF_TIM(TIM2, CH4, PB11, TIM_USE_PWM, 0),
}; };

View file

@ -29,8 +29,9 @@
#ifdef USE_TARGET_CONFIG #ifdef USE_TARGET_CONFIG
void targetConfiguration(void){ void targetConfiguration(void)
rxConfigMutable()->halfDuplex = true; {
serialConfigMutable()->portConfigs[findSerialPortIndexByIdentifier(SERIAL_PORT_UART4)].functionMask = FUNCTION_MSP; rxConfigMutable()->halfDuplex = true;
serialConfigMutable()->portConfigs[findSerialPortIndexByIdentifier(SERIAL_PORT_UART4)].functionMask = FUNCTION_MSP;
} }
#endif #endif

View file

@ -26,17 +26,17 @@
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM9, CH1, PA2, TIM_USE_PWM | TIM_USE_PPM, 0, 0), DEF_TIM(TIM9, CH1, PA2, TIM_USE_PWM | TIM_USE_PPM, 0, 0),
DEF_TIM(TIM8, CH1, PC6, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM8, CH1, PC6, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM5, CH1, PA0, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM5, CH1, PA0, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM4, CH3, PB8, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM4, CH3, PB8, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM4, CH1, PB6, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM4, CH1, PB6, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM4, CH2, PB7, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM4, CH2, PB7, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM8, CH2, PC7, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM8, CH2, PC7, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM2, CH2, PB3, TIM_USE_LED, 0, 0) DEF_TIM(TIM2, CH2, PB3, TIM_USE_LED, 0, 0)
}; };

View file

@ -25,10 +25,10 @@
#include "drivers/timer_def.h" #include "drivers/timer_def.h"
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM2, CH4, PA3, TIM_USE_MOTOR, 0, 1), DEF_TIM(TIM2, CH4, PA3, TIM_USE_MOTOR, 0, 1),
DEF_TIM(TIM3, CH3, PB0, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM3, CH3, PB0, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM3, CH4, PB1, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM3, CH4, PB1, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM2, CH3, PA2, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM2, CH3, PA2, TIM_USE_MOTOR, 0, 0),
#if defined(PLUMF4) || defined(KIWIF4V2) #if defined(PLUMF4) || defined(KIWIF4V2)
// DEF_TIM(TIM4, CH1, PA0, TIM_USE_LED, TIMER_OUTPUT_STANDARD, 0), //LED // DEF_TIM(TIM4, CH1, PA0, TIM_USE_LED, TIMER_OUTPUT_STANDARD, 0), //LED
//Switch LED_STRIP back to VTX.DTA, since the LED pad does not seem to be working: //Switch LED_STRIP back to VTX.DTA, since the LED pad does not seem to be working:

View file

@ -39,6 +39,6 @@ const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM15, CH1, PB14, TIM_USE_MOTOR, 0), // PWM10 - PB14 DEF_TIM(TIM15, CH1, PB14, TIM_USE_MOTOR, 0), // PWM10 - PB14
DEF_TIM(TIM15, CH2, PB15, TIM_USE_MOTOR, 0), // PWM11 - PB15 DEF_TIM(TIM15, CH2, PB15, TIM_USE_MOTOR, 0), // PWM11 - PB15
#endif #endif
DEF_TIM(TIM16, CH1, PA6, TIM_USE_LED, 0), DEF_TIM(TIM16, CH1, PA6, TIM_USE_LED, 0),
}; };

View file

@ -25,17 +25,17 @@
#include "drivers/timer_def.h" #include "drivers/timer_def.h"
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM9, CH2, PA3, TIM_USE_PPM, 0, 0), // PPM IN DEF_TIM(TIM9, CH2, PA3, TIM_USE_PPM, 0, 0), // PPM IN
DEF_TIM(TIM3, CH1, PB4, TIM_USE_MOTOR, 0, 0), // S1_OUT DEF_TIM(TIM3, CH1, PB4, TIM_USE_MOTOR, 0, 0), // S1_OUT
DEF_TIM(TIM3, CH2, PB5, TIM_USE_MOTOR, 0, 0), // S2_OUT DEF_TIM(TIM3, CH2, PB5, TIM_USE_MOTOR, 0, 0), // S2_OUT
DEF_TIM(TIM4, CH1, PB6, TIM_USE_MOTOR, 0, 0), // S3_OUT DEF_TIM(TIM4, CH1, PB6, TIM_USE_MOTOR, 0, 0), // S3_OUT
DEF_TIM(TIM4, CH2, PB7, TIM_USE_MOTOR, 0, 0), // S4_OUT DEF_TIM(TIM4, CH2, PB7, TIM_USE_MOTOR, 0, 0), // S4_OUT
DEF_TIM(TIM2, CH2, PB3, TIM_USE_MOTOR, 0, 0), // S5 DEF_TIM(TIM2, CH2, PB3, TIM_USE_MOTOR, 0, 0), // S5
DEF_TIM(TIM2, CH3, PB10, TIM_USE_MOTOR, 0, 0), // S6 DEF_TIM(TIM2, CH3, PB10, TIM_USE_MOTOR, 0, 0), // S6
DEF_TIM(TIM5, CH1, PA0, TIM_USE_ANY, 0, 0), // RSSI pad DEF_TIM(TIM5, CH1, PA0, TIM_USE_ANY, 0, 0), // RSSI pad
DEF_TIM(TIM5, CH3, PA2, TIM_USE_ANY, 0, 0), // TX2 DEF_TIM(TIM5, CH3, PA2, TIM_USE_ANY, 0, 0), // TX2
DEF_TIM(TIM1, CH1, PA8, TIM_USE_LED, 0, 0), // LED DEF_TIM(TIM1, CH1, PA8, TIM_USE_LED, 0, 0), // LED
}; };

View file

@ -31,8 +31,8 @@
#define USE_SPI_DEVICE_1 #define USE_SPI_DEVICE_1
#define SPI1_SCK_PIN PA5 #define SPI1_SCK_PIN PA5
#define SPI1_MISO_PIN PA6 #define SPI1_MISO_PIN PA6
#define SPI1_MOSI_PIN PA7 #define SPI1_MOSI_PIN PA7
#define MPU6000_CS_PIN PA4 #define MPU6000_CS_PIN PA4
#define MPU6000_SPI_INSTANCE SPI1 #define MPU6000_SPI_INSTANCE SPI1
@ -95,8 +95,8 @@
// *************** OSD ***************************** // *************** OSD *****************************
#define USE_SPI_DEVICE_2 #define USE_SPI_DEVICE_2
#define SPI2_SCK_PIN PB13 #define SPI2_SCK_PIN PB13
#define SPI2_MISO_PIN PB14 #define SPI2_MISO_PIN PB14
#define SPI2_MOSI_PIN PB15 #define SPI2_MOSI_PIN PB15
#define USE_OSD #define USE_OSD
#define USE_MAX7456 #define USE_MAX7456

View file

@ -73,9 +73,9 @@
#define USE_BARO_MS5611 #define USE_BARO_MS5611
#define USE_BARO_BMP085 #define USE_BARO_BMP085
//*********** Magnetometer / Compass ************* //*********** Magnetometer / Compass *************
#define USE_MAG #define USE_MAG
#define USE_MAG_HMC5883 #define USE_MAG_HMC5883
// *************** SD Card ************************** // *************** SD Card **************************
#define USE_SDCARD #define USE_SDCARD

View file

@ -102,7 +102,7 @@
#define USE_RX_FRSKY_SPI_D #define USE_RX_FRSKY_SPI_D
#define USE_RX_FRSKY_SPI_X #define USE_RX_FRSKY_SPI_X
#define DEFAULT_RX_FEATURE FEATURE_RX_SPI #define DEFAULT_RX_FEATURE FEATURE_RX_SPI
#define RX_SPI_DEFAULT_PROTOCOL RX_SPI_FRSKY_X #define RX_SPI_DEFAULT_PROTOCOL RX_SPI_FRSKY_X
#define USE_RX_FRSKY_SPI_TELEMETRY #define USE_RX_FRSKY_SPI_TELEMETRY

View file

@ -26,16 +26,16 @@
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM12, CH2, PB15, TIM_USE_PWM | TIM_USE_PPM, 0, 0), DEF_TIM(TIM12, CH2, PB15, TIM_USE_PWM | TIM_USE_PPM, 0, 0),
DEF_TIM(TIM8, CH1, PC6, TIM_USE_PWM, 0, 0), DEF_TIM(TIM8, CH1, PC6, TIM_USE_PWM, 0, 0),
DEF_TIM(TIM8, CH2, PC7, TIM_USE_PWM, 0, 0), DEF_TIM(TIM8, CH2, PC7, TIM_USE_PWM, 0, 0),
DEF_TIM(TIM8, CH4, PC9, TIM_USE_PWM, 0, 0), DEF_TIM(TIM8, CH4, PC9, TIM_USE_PWM, 0, 0),
DEF_TIM(TIM8, CH3, PC8, TIM_USE_PWM, 0, 0), DEF_TIM(TIM8, CH3, PC8, TIM_USE_PWM, 0, 0),
DEF_TIM(TIM4, CH3, PB8, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM4, CH3, PB8, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM2, CH4, PA3, TIM_USE_MOTOR, 0, 1), DEF_TIM(TIM2, CH4, PA3, TIM_USE_MOTOR, 0, 1),
DEF_TIM(TIM3, CH2, PB5, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM3, CH2, PB5, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM4, CH4, PB9, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM4, CH4, PB9, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM9, CH2, PE6, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM9, CH2, PE6, TIM_USE_MOTOR, 0, 0),
DEF_TIM(TIM3, CH1, PB4, TIM_USE_MOTOR, 0, 0), DEF_TIM(TIM3, CH1, PB4, TIM_USE_MOTOR, 0, 0),
}; };

View file

@ -87,7 +87,7 @@
#define ACC_MPU6000_ALIGN CW270_DEG #define ACC_MPU6000_ALIGN CW270_DEG
#elif defined(XRACERF4) || defined(EXUAVF4PRO) #elif defined(XRACERF4) || defined(EXUAVF4PRO)
#define GYRO_MPU6000_ALIGN CW90_DEG #define GYRO_MPU6000_ALIGN CW90_DEG
#define ACC_MPU6000_ALIGN CW90_DEG #define ACC_MPU6000_ALIGN CW90_DEG
#else #else
#define GYRO_MPU6000_ALIGN CW180_DEG #define GYRO_MPU6000_ALIGN CW180_DEG
#define ACC_MPU6000_ALIGN CW180_DEG #define ACC_MPU6000_ALIGN CW180_DEG

View file

@ -25,7 +25,7 @@
#include "drivers/dma.h" #include "drivers/dma.h"
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM2, CH1, PA0, TIM_USE_PPM, 0), DEF_TIM(TIM2, CH1, PA0, TIM_USE_PPM, 0),
DEF_TIM(TIM8, CH1, PB6, TIM_USE_MOTOR, 0), // PWM1 - DMA2 CH3 DEF_TIM(TIM8, CH1, PB6, TIM_USE_MOTOR, 0), // PWM1 - DMA2 CH3
DEF_TIM(TIM3, CH4, PB7, TIM_USE_MOTOR, 0), // PWM2 - DMA1 CH3 DEF_TIM(TIM3, CH4, PB7, TIM_USE_MOTOR, 0), // PWM2 - DMA1 CH3
DEF_TIM(TIM8, CH2, PB8, TIM_USE_MOTOR, 0), // PMW3 - DMA2 CH5 DEF_TIM(TIM8, CH2, PB8, TIM_USE_MOTOR, 0), // PMW3 - DMA2 CH5

View file

@ -26,11 +26,11 @@
#include "drivers/dma.h" #include "drivers/dma.h"
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, 0), DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, 0),
DEF_TIM(TIM17, CH1, PA7, TIM_USE_MOTOR, 0), DEF_TIM(TIM17, CH1, PA7, TIM_USE_MOTOR, 0),
DEF_TIM(TIM3, CH3, PB0, TIM_USE_MOTOR, 0), DEF_TIM(TIM3, CH3, PB0, TIM_USE_MOTOR, 0),
DEF_TIM(TIM3, CH2, PA4, TIM_USE_MOTOR, 0), DEF_TIM(TIM3, CH2, PA4, TIM_USE_MOTOR, 0),
DEF_TIM(TIM3, CH4, PB1, TIM_USE_MOTOR, 0), DEF_TIM(TIM3, CH4, PB1, TIM_USE_MOTOR, 0),
DEF_TIM(TIM2, CH2, PA1, TIM_USE_PPM, 0), DEF_TIM(TIM2, CH2, PA1, TIM_USE_PPM, 0),
DEF_TIM(TIM16, CH1, PB8, TIM_USE_LED, 0), DEF_TIM(TIM16, CH1, PB8, TIM_USE_LED, 0),
}; };

View file

@ -9,15 +9,15 @@
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM2, CH4, PA3, TIM_USE_PPM, 0), DEF_TIM(TIM2, CH4, PA3, TIM_USE_PPM, 0),
// Main outputs 6 PWM // Main outputs 6 PWM
DEF_TIM(TIM4, CH1, PB6, TIM_USE_MOTOR, 0), DEF_TIM(TIM4, CH1, PB6, TIM_USE_MOTOR, 0),
DEF_TIM(TIM4, CH2, PB7, TIM_USE_MOTOR, 0), DEF_TIM(TIM4, CH2, PB7, TIM_USE_MOTOR, 0),
DEF_TIM(TIM8, CH2, PB8, TIM_USE_MOTOR, 0), DEF_TIM(TIM8, CH2, PB8, TIM_USE_MOTOR, 0),
DEF_TIM(TIM8, CH3, PB9, TIM_USE_MOTOR, 0), DEF_TIM(TIM8, CH3, PB9, TIM_USE_MOTOR, 0),
DEF_TIM(TIM3, CH1, PC6, TIM_USE_MOTOR, 0), DEF_TIM(TIM3, CH1, PC6, TIM_USE_MOTOR, 0),
DEF_TIM(TIM3, CH2, PC7, TIM_USE_MOTOR, 0), DEF_TIM(TIM3, CH2, PC7, TIM_USE_MOTOR, 0),
// Additional outputs // Additional outputs
DEF_TIM(TIM16, CH1, PA6, TIM_USE_TRANSPONDER, 0), DEF_TIM(TIM16, CH1, PA6, TIM_USE_TRANSPONDER, 0),
DEF_TIM(TIM1 , CH1N, PA7, TIM_USE_LED, 0), DEF_TIM(TIM1 , CH1N, PA7, TIM_USE_LED, 0),
}; };

View file

@ -54,7 +54,7 @@ const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM2, CH4, PB11, TIM_USE_MOTOR, 0), // PWM4 - PB11 - *TIM2_CH4, UART3_RX (AF7) DEF_TIM(TIM2, CH4, PB11, TIM_USE_MOTOR, 0), // PWM4 - PB11 - *TIM2_CH4, UART3_RX (AF7)
// with DSHOT DMA1-CH3 conflicts with TIM3_CH4 / ESC1. // with DSHOT DMA1-CH3 conflicts with TIM3_CH4 / ESC1.
DEF_TIM(TIM16, CH1, PB8, TIM_USE_TRANSPONDER, 0), DEF_TIM(TIM16, CH1, PB8, TIM_USE_TRANSPONDER, 0),
DEF_TIM(TIM1, CH1, PA8, TIM_USE_LED, 0), DEF_TIM(TIM1, CH1, PA8, TIM_USE_LED, 0),
}; };

View file

@ -31,5 +31,5 @@ const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM16, CH1, PB4, TIM_USE_MOTOR, 0), // DMA1_Channel3 or DMA1_Channel6 with Remap (need remap to free SPI1_TX for Flash) DEF_TIM(TIM16, CH1, PB4, TIM_USE_MOTOR, 0), // DMA1_Channel3 or DMA1_Channel6 with Remap (need remap to free SPI1_TX for Flash)
DEF_TIM(TIM17, CH1, PB5, TIM_USE_MOTOR, 0), // DMA1_Channel1 or DMA1_Channel7 with Remap (need remap, ADC1 is on DMA1_Channel1) DEF_TIM(TIM17, CH1, PB5, TIM_USE_MOTOR, 0), // DMA1_Channel1 or DMA1_Channel7 with Remap (need remap, ADC1 is on DMA1_Channel1)
DEF_TIM(TIM1, CH1, PA8, TIM_USE_TRANSPONDER, 0), DEF_TIM(TIM1, CH1, PA8, TIM_USE_TRANSPONDER, 0),
}; };

View file

@ -26,19 +26,19 @@
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = { const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
DEF_TIM(TIM16, CH1, PB8, TIM_USE_PPM | TIM_USE_LED, 0), DEF_TIM(TIM16, CH1, PB8, TIM_USE_PPM | TIM_USE_LED, 0),
DEF_TIM(TIM17, CH1, PB9, 0, 0), DEF_TIM(TIM17, CH1, PB9, 0, 0),
DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, 0), DEF_TIM(TIM1, CH1, PA8, TIM_USE_MOTOR, 0),
DEF_TIM(TIM8, CH1, PC6, TIM_USE_MOTOR, 0), DEF_TIM(TIM8, CH1, PC6, TIM_USE_MOTOR, 0),
DEF_TIM(TIM8, CH2, PC7, TIM_USE_MOTOR, 0), DEF_TIM(TIM8, CH2, PC7, TIM_USE_MOTOR, 0),
DEF_TIM(TIM8, CH3, PC8, TIM_USE_MOTOR, 0), DEF_TIM(TIM8, CH3, PC8, TIM_USE_MOTOR, 0),
DEF_TIM(TIM3, CH4, PB1, 0, 0), DEF_TIM(TIM3, CH4, PB1, 0, 0),
DEF_TIM(TIM3, CH2, PA4, 0, 0), DEF_TIM(TIM3, CH2, PA4, 0, 0),
DEF_TIM(TIM4, CH1, PD12, TIM_USE_BEEPER, 0), DEF_TIM(TIM4, CH1, PD12, TIM_USE_BEEPER, 0),
DEF_TIM(TIM4, CH2, PD13, 0, 0), DEF_TIM(TIM4, CH2, PD13, 0, 0),
DEF_TIM(TIM4, CH3, PD14, 0, 0), DEF_TIM(TIM4, CH3, PD14, 0, 0),
DEF_TIM(TIM4, CH4, PD15, 0, 0), DEF_TIM(TIM4, CH4, PD15, 0, 0),
DEF_TIM(TIM2, CH2, PA1, 0, 0), DEF_TIM(TIM2, CH2, PA1, 0, 0),
DEF_TIM(TIM2, CH3, PA2, 0, 0), DEF_TIM(TIM2, CH3, PA2, 0, 0),
}; };

View file

@ -125,7 +125,7 @@
#define USE_RESOURCE_MGMT #define USE_RESOURCE_MGMT
#define USE_SERVOS #define USE_SERVOS
#endif #endif
#if (FLASH_SIZE > 128) #if (FLASH_SIZE > 128)
#define USE_CMS #define USE_CMS
#define USE_TELEMETRY_CRSF #define USE_TELEMETRY_CRSF

View file

@ -172,15 +172,15 @@
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 9; RCC_OscInitStruct.PLL.PLLQ = 9;
#else #else
/* Enable HSE Oscillator and activate PLL with HSE as source */ /* Enable HSE Oscillator and activate PLL with HSE as source */
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.HSEState = RCC_HSE_ON;
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = PLL_M; RCC_OscInitStruct.PLL.PLLM = PLL_M;
RCC_OscInitStruct.PLL.PLLN = PLL_N; RCC_OscInitStruct.PLL.PLLN = PLL_N;
RCC_OscInitStruct.PLL.PLLP = PLL_P; RCC_OscInitStruct.PLL.PLLP = PLL_P;
RCC_OscInitStruct.PLL.PLLQ = PLL_Q; RCC_OscInitStruct.PLL.PLLQ = PLL_Q;
#endif #endif
ret = HAL_RCC_OscConfig(&RCC_OscInitStruct); ret = HAL_RCC_OscConfig(&RCC_OscInitStruct);

View file

@ -185,7 +185,7 @@ smartPortPayload_t *smartPortDataReceive(uint16_t c, bool *clearToSend, smartPor
} else { } else {
if (c == FSSP_DLE) { if (c == FSSP_DLE) {
byteStuffing = true; byteStuffing = true;
return NULL; return NULL;
} else if (byteStuffing) { } else if (byteStuffing) {
c ^= FSSP_DLE_XOR; c ^= FSSP_DLE_XOR;

View file

@ -209,10 +209,10 @@ bool srxlFrameFlightPackCurrent(sbuf_t *dst, timeUs_t currentTimeUs)
/* /*
typedef struct typedef struct
{ {
UINT8 identifier; UINT8 identifier;
UINT8 sID; // Secondary ID UINT8 sID; // Secondary ID
UINT8 lineNumber; // Line number to display (0 = title, 1-8 for general, 254 = Refresh backlight, 255 = Erase all text on screen) UINT8 lineNumber; // Line number to display (0 = title, 1-8 for general, 254 = Refresh backlight, 255 = Erase all text on screen)
char text[13]; // 0-terminated text when < 13 chars char text[13]; // 0-terminated text when < 13 chars
} STRU_SPEKTRUM_SRXL_TEXTGEN; } STRU_SPEKTRUM_SRXL_TEXTGEN;
*/ */
@ -225,7 +225,7 @@ static bool lineSent[SPEKTRUM_SRXL_DEVICE_TEXTGEN_ROWS];
#endif #endif
//************************************************************************** //**************************************************************************
// API Running in external client task context. E.g. in the CMS task // API Running in external client task context. E.g. in the CMS task
int spektrumTmTextGenPutChar(uint8_t col, uint8_t row, char c) int spektrumTmTextGenPutChar(uint8_t col, uint8_t row, char c)
{ {
if (row < SPEKTRUM_SRXL_TEXTGEN_BUFFER_ROWS && col < SPEKTRUM_SRXL_TEXTGEN_BUFFER_COLS) { if (row < SPEKTRUM_SRXL_TEXTGEN_BUFFER_ROWS && col < SPEKTRUM_SRXL_TEXTGEN_BUFFER_COLS) {