mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-16 04:45:24 +03:00
Merge branch 'master' into development
This commit is contained in:
commit
e43d00bce6
11 changed files with 54 additions and 44 deletions
|
@ -240,9 +240,9 @@ void resetEscAndServoConfig(escAndServoConfig_t *escAndServoConfig)
|
||||||
#ifdef BRUSHED_MOTORS
|
#ifdef BRUSHED_MOTORS
|
||||||
escAndServoConfig->minthrottle = 1000;
|
escAndServoConfig->minthrottle = 1000;
|
||||||
#else
|
#else
|
||||||
escAndServoConfig->maxthrottle = 2000;
|
|
||||||
escAndServoConfig->minthrottle = 1070;
|
escAndServoConfig->minthrottle = 1070;
|
||||||
#endif
|
#endif
|
||||||
|
escAndServoConfig->maxthrottle = 2000;
|
||||||
escAndServoConfig->mincommand = 1000;
|
escAndServoConfig->mincommand = 1000;
|
||||||
escAndServoConfig->servoCenterPulse = 1500;
|
escAndServoConfig->servoCenterPulse = 1500;
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,7 +39,11 @@
|
||||||
#include "dma.h"
|
#include "dma.h"
|
||||||
#include "light_ws2811strip.h"
|
#include "light_ws2811strip.h"
|
||||||
|
|
||||||
|
#if defined(STM32F4)
|
||||||
|
uint32_t ledStripDMABuffer[WS2811_DMA_BUFFER_SIZE];
|
||||||
|
#else
|
||||||
uint8_t ledStripDMABuffer[WS2811_DMA_BUFFER_SIZE];
|
uint8_t ledStripDMABuffer[WS2811_DMA_BUFFER_SIZE];
|
||||||
|
#endif
|
||||||
volatile uint8_t ws2811LedDataTransferInProgress = 0;
|
volatile uint8_t ws2811LedDataTransferInProgress = 0;
|
||||||
|
|
||||||
static hsvColor_t ledColorBuffer[WS2811_LED_STRIP_LENGTH];
|
static hsvColor_t ledColorBuffer[WS2811_LED_STRIP_LENGTH];
|
||||||
|
|
|
@ -51,5 +51,9 @@ void setStripColors(const hsvColor_t *colors);
|
||||||
|
|
||||||
bool isWS2811LedStripReady(void);
|
bool isWS2811LedStripReady(void);
|
||||||
|
|
||||||
|
#if defined(STM32F4)
|
||||||
|
extern uint32_t ledStripDMABuffer[WS2811_DMA_BUFFER_SIZE];
|
||||||
|
#else
|
||||||
extern uint8_t ledStripDMABuffer[WS2811_DMA_BUFFER_SIZE];
|
extern uint8_t ledStripDMABuffer[WS2811_DMA_BUFFER_SIZE];
|
||||||
|
#endif
|
||||||
extern volatile uint8_t ws2811LedDataTransferInProgress;
|
extern volatile uint8_t ws2811LedDataTransferInProgress;
|
||||||
|
|
|
@ -50,7 +50,7 @@ static void WS2811_DMA_IRQHandler(dmaChannelDescriptor_t *descriptor)
|
||||||
if (DMA_GET_FLAG_STATUS(descriptor, DMA_IT_TCIF)) {
|
if (DMA_GET_FLAG_STATUS(descriptor, DMA_IT_TCIF)) {
|
||||||
ws2811LedDataTransferInProgress = 0;
|
ws2811LedDataTransferInProgress = 0;
|
||||||
DMA_Cmd(descriptor->stream, DISABLE);
|
DMA_Cmd(descriptor->stream, DISABLE);
|
||||||
TIM_DMACmd(TIM5, TIM_DMA_CC1, DISABLE);
|
TIM_DMACmd(WS2811_TIMER, timDMASource, DISABLE);
|
||||||
DMA_CLEAR_FLAG(descriptor, DMA_IT_TCIF);
|
DMA_CLEAR_FLAG(descriptor, DMA_IT_TCIF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -180,7 +180,6 @@ static void ppmOverflowCallback(timerOvrHandlerRec_t* cbRec, captureCompare_t ca
|
||||||
if (capture == PPM_TIMER_PERIOD - 1) {
|
if (capture == PPM_TIMER_PERIOD - 1) {
|
||||||
ppmDev.overflowed = true;
|
ppmDev.overflowed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ppmEdgeCallback(timerCCHandlerRec_t* cbRec, captureCompare_t capture)
|
static void ppmEdgeCallback(timerCCHandlerRec_t* cbRec, captureCompare_t capture)
|
||||||
|
|
|
@ -2518,7 +2518,9 @@ static void cliDumpProfile(uint8_t profileIndex, uint8_t dumpMask, master_t *def
|
||||||
changeProfile(profileIndex);
|
changeProfile(profileIndex);
|
||||||
cliPrint("\r\n# profile\r\n");
|
cliPrint("\r\n# profile\r\n");
|
||||||
cliProfile("");
|
cliProfile("");
|
||||||
|
cliPrint("\r\n");
|
||||||
dumpValues(PROFILE_VALUE, dumpMask, defaultConfig);
|
dumpValues(PROFILE_VALUE, dumpMask, defaultConfig);
|
||||||
|
cliRateProfile("");
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cliDumpRateProfile(uint8_t rateProfileIndex, uint8_t dumpMask, master_t *defaultConfig)
|
static void cliDumpRateProfile(uint8_t rateProfileIndex, uint8_t dumpMask, master_t *defaultConfig)
|
||||||
|
@ -2528,6 +2530,7 @@ static void cliDumpRateProfile(uint8_t rateProfileIndex, uint8_t dumpMask, maste
|
||||||
changeControlRateProfile(rateProfileIndex);
|
changeControlRateProfile(rateProfileIndex);
|
||||||
cliPrint("\r\n# rateprofile\r\n");
|
cliPrint("\r\n# rateprofile\r\n");
|
||||||
cliRateProfile("");
|
cliRateProfile("");
|
||||||
|
cliPrint("\r\n");
|
||||||
dumpValues(PROFILE_RATE_VALUE, dumpMask, defaultConfig);
|
dumpValues(PROFILE_RATE_VALUE, dumpMask, defaultConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -78,12 +78,12 @@ void targetConfiguration(void)
|
||||||
masterConfig.motor_pwm_rate = 32000;
|
masterConfig.motor_pwm_rate = 32000;
|
||||||
masterConfig.failsafeConfig.failsafe_delay = 2;
|
masterConfig.failsafeConfig.failsafe_delay = 2;
|
||||||
masterConfig.failsafeConfig.failsafe_off_delay = 0;
|
masterConfig.failsafeConfig.failsafe_off_delay = 0;
|
||||||
currentProfile->pidProfile.P8[ROLL] = 90;
|
masterConfig.profile[0].pidProfile.P8[ROLL] = 90;
|
||||||
currentProfile->pidProfile.I8[ROLL] = 44;
|
masterConfig.profile[0].pidProfile.I8[ROLL] = 44;
|
||||||
currentProfile->pidProfile.D8[ROLL] = 60;
|
masterConfig.profile[0].pidProfile.D8[ROLL] = 60;
|
||||||
currentProfile->pidProfile.P8[PITCH] = 90;
|
masterConfig.profile[0].pidProfile.P8[PITCH] = 90;
|
||||||
currentProfile->pidProfile.I8[PITCH] = 44;
|
masterConfig.profile[0].pidProfile.I8[PITCH] = 44;
|
||||||
currentProfile->pidProfile.D8[PITCH] = 60;
|
masterConfig.profile[0].pidProfile.D8[PITCH] = 60;
|
||||||
|
|
||||||
masterConfig.customMotorMixer[0] = (motorMixer_t){ 1.0f, -0.414178f, 1.0f, -1.0f }; // REAR_R
|
masterConfig.customMotorMixer[0] = (motorMixer_t){ 1.0f, -0.414178f, 1.0f, -1.0f }; // REAR_R
|
||||||
masterConfig.customMotorMixer[1] = (motorMixer_t){ 1.0f, -0.414178f, -1.0f, 1.0f }; // FRONT_R
|
masterConfig.customMotorMixer[1] = (motorMixer_t){ 1.0f, -0.414178f, -1.0f, 1.0f }; // FRONT_R
|
||||||
|
|
|
@ -86,12 +86,12 @@ void targetConfiguration(void) {
|
||||||
masterConfig.failsafeConfig.failsafe_off_delay = 0;
|
masterConfig.failsafeConfig.failsafe_off_delay = 0;
|
||||||
masterConfig.gyro_sync_denom = 2;
|
masterConfig.gyro_sync_denom = 2;
|
||||||
masterConfig.pid_process_denom = 1;
|
masterConfig.pid_process_denom = 1;
|
||||||
currentProfile->pidProfile.P8[ROLL] = 90;
|
masterConfig.profile[0].pidProfile.P8[ROLL] = 90;
|
||||||
currentProfile->pidProfile.I8[ROLL] = 44;
|
masterConfig.profile[0].pidProfile.I8[ROLL] = 44;
|
||||||
currentProfile->pidProfile.D8[ROLL] = 60;
|
masterConfig.profile[0].pidProfile.D8[ROLL] = 60;
|
||||||
currentProfile->pidProfile.P8[PITCH] = 90;
|
masterConfig.profile[0].pidProfile.P8[PITCH] = 90;
|
||||||
currentProfile->pidProfile.I8[PITCH] = 44;
|
masterConfig.profile[0].pidProfile.I8[PITCH] = 44;
|
||||||
currentProfile->pidProfile.D8[PITCH] = 60;
|
masterConfig.profile[0].pidProfile.D8[PITCH] = 60;
|
||||||
|
|
||||||
masterConfig.customMotorMixer[0] = (motorMixer_t){ 1.0f, -0.414178f, 1.0f, -1.0f }; // REAR_R
|
masterConfig.customMotorMixer[0] = (motorMixer_t){ 1.0f, -0.414178f, 1.0f, -1.0f }; // REAR_R
|
||||||
masterConfig.customMotorMixer[1] = (motorMixer_t){ 1.0f, -0.414178f, -1.0f, 1.0f }; // FRONT_R
|
masterConfig.customMotorMixer[1] = (motorMixer_t){ 1.0f, -0.414178f, -1.0f, 1.0f }; // FRONT_R
|
||||||
|
|
|
@ -86,12 +86,12 @@ void targetConfiguration(void) {
|
||||||
masterConfig.failsafeConfig.failsafe_off_delay = 0;
|
masterConfig.failsafeConfig.failsafe_off_delay = 0;
|
||||||
masterConfig.gyro_sync_denom = 1;
|
masterConfig.gyro_sync_denom = 1;
|
||||||
masterConfig.pid_process_denom = 1;
|
masterConfig.pid_process_denom = 1;
|
||||||
currentProfile->pidProfile.P8[ROLL] = 90;
|
masterConfig.profile[0].pidProfile.P8[ROLL] = 90;
|
||||||
currentProfile->pidProfile.I8[ROLL] = 44;
|
masterConfig.profile[0].pidProfile.I8[ROLL] = 44;
|
||||||
currentProfile->pidProfile.D8[ROLL] = 60;
|
masterConfig.profile[0].pidProfile.D8[ROLL] = 60;
|
||||||
currentProfile->pidProfile.P8[PITCH] = 90;
|
masterConfig.profile[0].pidProfile.P8[PITCH] = 90;
|
||||||
currentProfile->pidProfile.I8[PITCH] = 44;
|
masterConfig.profile[0].pidProfile.I8[PITCH] = 44;
|
||||||
currentProfile->pidProfile.D8[PITCH] = 60;
|
masterConfig.profile[0].pidProfile.D8[PITCH] = 60;
|
||||||
|
|
||||||
masterConfig.customMotorMixer[0] = (motorMixer_t){ 1.0f, -0.414178f, 1.0f, -1.0f }; // REAR_R
|
masterConfig.customMotorMixer[0] = (motorMixer_t){ 1.0f, -0.414178f, 1.0f, -1.0f }; // REAR_R
|
||||||
masterConfig.customMotorMixer[1] = (motorMixer_t){ 1.0f, -0.414178f, -1.0f, 1.0f }; // FRONT_R
|
masterConfig.customMotorMixer[1] = (motorMixer_t){ 1.0f, -0.414178f, -1.0f, 1.0f }; // FRONT_R
|
||||||
|
|
|
@ -67,12 +67,12 @@ const uint16_t airPWM[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
|
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
|
||||||
{ TIM8, IO_TAG(PC7), TIM_Channel_2, TIM8_CC_IRQn, 0, IOCFG_IPD, GPIO_AF_TIM8 }, // PPM IN
|
{ TIM8, IO_TAG(PC7), TIM_Channel_2, TIM8_CC_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM8 }, // PPM IN
|
||||||
{ TIM5, IO_TAG(PA0), TIM_Channel_1, TIM5_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM5 }, // S1_OUT
|
{ TIM5, IO_TAG(PA0), TIM_Channel_1, TIM5_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM5 }, // S1_OUT
|
||||||
{ TIM5, IO_TAG(PA1), TIM_Channel_2, TIM5_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM5 }, // S2_OUT
|
{ TIM5, IO_TAG(PA1), TIM_Channel_2, TIM5_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM5 }, // S2_OUT
|
||||||
{ TIM2, IO_TAG(PA2), TIM_Channel_3, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM2 }, // S3_OUT
|
{ TIM2, IO_TAG(PA2), TIM_Channel_3, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM2 }, // S3_OUT
|
||||||
{ TIM9, IO_TAG(PA3), TIM_Channel_2, TIM1_BRK_TIM9_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM9 }, // S4_OUT
|
{ TIM9, IO_TAG(PA3), TIM_Channel_2, TIM1_BRK_TIM9_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM9 }, // S4_OUT
|
||||||
{ TIM3, IO_TAG(PB1), TIM_Channel_4, TIM3_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM3 }, // S5_OUT
|
{ TIM3, IO_TAG(PB1), TIM_Channel_4, TIM3_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM3 }, // S5_OUT
|
||||||
{ TIM3, IO_TAG(PB0), TIM_Channel_3, TIM3_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM3 }, // S6_OUT
|
{ TIM3, IO_TAG(PB0), TIM_Channel_3, TIM3_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM3 }, // S6_OUT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#include "drivers/timer.h"
|
#include "drivers/timer.h"
|
||||||
|
|
||||||
const uint16_t multiPPM[] = {
|
const uint16_t multiPPM[] = {
|
||||||
PWM6 | (MAP_TO_PPM_INPUT << 8), // PPM input
|
PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input
|
||||||
PWM7 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
PWM7 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM8 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
PWM8 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM9 | (MAP_TO_MOTOR_OUTPUT << 8),
|
PWM9 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
|
@ -34,7 +34,7 @@ const uint16_t multiPPM[] = {
|
||||||
PWM3 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
PWM3 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM4 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
PWM4 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM5 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
PWM5 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM1 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
PWM6 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
0xFFFF
|
0xFFFF
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ const uint16_t multiPWM[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint16_t airPPM[] = {
|
const uint16_t airPPM[] = {
|
||||||
PWM6 | (MAP_TO_PPM_INPUT << 8), // PPM input
|
PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input
|
||||||
PWM7 | (MAP_TO_MOTOR_OUTPUT << 8),
|
PWM7 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM8 | (MAP_TO_MOTOR_OUTPUT << 8),
|
PWM8 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM9 | (MAP_TO_SERVO_OUTPUT << 8),
|
PWM9 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
|
@ -66,7 +66,7 @@ const uint16_t airPPM[] = {
|
||||||
PWM3 | (MAP_TO_SERVO_OUTPUT << 8),
|
PWM3 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM4 | (MAP_TO_SERVO_OUTPUT << 8),
|
PWM4 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM5 | (MAP_TO_SERVO_OUTPUT << 8),
|
PWM5 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM1 | (MAP_TO_SERVO_OUTPUT << 8),
|
PWM6 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
0xFFFF
|
0xFFFF
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -87,16 +87,16 @@ const uint16_t airPWM[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
|
const timerHardware_t timerHardware[USABLE_TIMER_CHANNEL_COUNT] = {
|
||||||
{ TIM12, IO_TAG(PB14), TIM_Channel_1, TIM8_BRK_TIM12_IRQn, 0, IOCFG_IPD, GPIO_AF_TIM12 }, // PPM (5th pin on FlexiIO port)
|
{ TIM12, IO_TAG(PB14), TIM_Channel_1, TIM8_BRK_TIM12_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM12 }, // PPM (5th pin on FlexiIO port)
|
||||||
{ TIM12, IO_TAG(PB15), TIM_Channel_2, TIM8_BRK_TIM12_IRQn, 0, IOCFG_IPD, GPIO_AF_TIM12 }, // S2_IN - GPIO_PartialRemap_TIM3
|
{ TIM12, IO_TAG(PB15), TIM_Channel_2, TIM8_BRK_TIM12_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM12 }, // S2_IN - GPIO_PartialRemap_TIM3
|
||||||
{ TIM8, IO_TAG(PC6), TIM_Channel_1, TIM8_CC_IRQn, 0, IOCFG_IPD, GPIO_AF_TIM8 }, // S3_IN
|
{ TIM8, IO_TAG(PC6), TIM_Channel_1, TIM8_CC_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM8 }, // S3_IN
|
||||||
{ TIM8, IO_TAG(PC7), TIM_Channel_2, TIM8_CC_IRQn, 0, IOCFG_IPD, GPIO_AF_TIM8 }, // S4_IN
|
{ TIM8, IO_TAG(PC7), TIM_Channel_2, TIM8_CC_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM8 }, // S4_IN
|
||||||
{ TIM8, IO_TAG(PC8), TIM_Channel_3, TIM8_CC_IRQn, 0, IOCFG_IPD, GPIO_AF_TIM8 }, // S5_IN
|
{ TIM8, IO_TAG(PC8), TIM_Channel_3, TIM8_CC_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM8 }, // S5_IN
|
||||||
{ TIM8, IO_TAG(PC9), TIM_Channel_4, TIM8_CC_IRQn, 0, IOCFG_IPD, GPIO_AF_TIM8 }, // S6_IN
|
{ TIM8, IO_TAG(PC9), TIM_Channel_4, TIM8_CC_IRQn, 0, IOCFG_AF_PP, GPIO_AF_TIM8 }, // S6_IN
|
||||||
{ TIM3, IO_TAG(PB0), TIM_Channel_3, TIM3_IRQn, 1, IOCFG_AF_PP_PD, GPIO_AF_TIM3 }, // S1_OUT
|
{ TIM3, IO_TAG(PB0), TIM_Channel_3, TIM3_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM3 }, // S1_OUT
|
||||||
{ TIM3, IO_TAG(PB1), TIM_Channel_4, TIM3_IRQn, 1, IOCFG_AF_PP_PD, GPIO_AF_TIM3 }, // S2_OUT
|
{ TIM3, IO_TAG(PB1), TIM_Channel_4, TIM3_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM3 }, // S2_OUT
|
||||||
{ TIM9, IO_TAG(PA3), TIM_Channel_2, TIM1_BRK_TIM9_IRQn, 1, IOCFG_AF_PP_PD, GPIO_AF_TIM9 }, // S3_OUT
|
{ TIM9, IO_TAG(PA3), TIM_Channel_2, TIM1_BRK_TIM9_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM9 }, // S3_OUT
|
||||||
{ TIM2, IO_TAG(PA2), TIM_Channel_3, TIM2_IRQn, 1, IOCFG_AF_PP_PD, GPIO_AF_TIM2 }, // S4_OUT
|
{ TIM2, IO_TAG(PA2), TIM_Channel_3, TIM2_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM2 }, // S4_OUT
|
||||||
{ TIM5, IO_TAG(PA1), TIM_Channel_2, TIM5_IRQn, 1, IOCFG_AF_PP_PD, GPIO_AF_TIM5 }, // S5_OUT - GPIO_PartialRemap_TIM3
|
{ TIM5, IO_TAG(PA1), TIM_Channel_2, TIM5_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM5 }, // S5_OUT - GPIO_PartialRemap_TIM3
|
||||||
{ TIM5, IO_TAG(PA0), TIM_Channel_1, TIM5_IRQn, 1, IOCFG_AF_PP_PD, GPIO_AF_TIM5 }, // S6_OUT
|
{ TIM5, IO_TAG(PA0), TIM_Channel_1, TIM5_IRQn, 1, IOCFG_AF_PP, GPIO_AF_TIM5 }, // S6_OUT
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue