mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-21 07:15:18 +03:00
CJMCU - Update PPM/PWM mappings.
Bench tested for PPM & 4 Motor outputs only.
This commit is contained in:
parent
871f3024af
commit
acc285be4a
1 changed files with 127 additions and 122 deletions
|
@ -63,161 +63,166 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
TYPE_IP = 1,
|
MAP_TO_PPM_INPUT = 1,
|
||||||
TYPE_IW,
|
MAP_TO_PWM_INPUT,
|
||||||
TYPE_M,
|
MAP_TO_MOTOR_OUTPUT,
|
||||||
TYPE_S,
|
MAP_TO_SERVO_OUTPUT,
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(NAZE) || defined(OLIMEXINO) || defined(NAZE32PRO) || defined(STM32F3DISCOVERY)
|
#if defined(NAZE) || defined(OLIMEXINO) || defined(NAZE32PRO) || defined(STM32F3DISCOVERY)
|
||||||
static const uint16_t multiPPM[] = {
|
static const uint16_t multiPPM[] = {
|
||||||
PWM1 | (TYPE_IP << 8), // PPM input
|
PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input
|
||||||
PWM9 | (TYPE_M << 8), // Swap to servo if needed
|
PWM9 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM10 | (TYPE_M << 8), // Swap to servo if needed
|
PWM10 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM11 | (TYPE_M << 8),
|
PWM11 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM12 | (TYPE_M << 8),
|
PWM12 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM13 | (TYPE_M << 8),
|
PWM13 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM14 | (TYPE_M << 8),
|
PWM14 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM5 | (TYPE_M << 8), // Swap to servo if needed
|
PWM5 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM6 | (TYPE_M << 8), // Swap to servo if needed
|
PWM6 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM7 | (TYPE_M << 8), // Swap to servo if needed
|
PWM7 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM8 | (TYPE_M << 8), // Swap to servo if needed
|
PWM8 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
0xFFFF
|
0xFFFF
|
||||||
};
|
};
|
||||||
|
|
||||||
static const uint16_t multiPWM[] = {
|
static const uint16_t multiPWM[] = {
|
||||||
PWM1 | (TYPE_IW << 8), // input #1
|
PWM1 | (MAP_TO_PWM_INPUT << 8), // input #1
|
||||||
PWM2 | (TYPE_IW << 8),
|
PWM2 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM3 | (TYPE_IW << 8),
|
PWM3 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM4 | (TYPE_IW << 8),
|
PWM4 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM5 | (TYPE_IW << 8),
|
PWM5 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM6 | (TYPE_IW << 8),
|
PWM6 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM7 | (TYPE_IW << 8),
|
PWM7 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM8 | (TYPE_IW << 8), // input #8
|
PWM8 | (MAP_TO_PWM_INPUT << 8), // input #8
|
||||||
PWM9 | (TYPE_M << 8), // motor #1 or servo #1 (swap to servo if needed)
|
PWM9 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #1 or servo #1 (swap to servo if needed)
|
||||||
PWM10 | (TYPE_M << 8), // motor #2 or servo #2 (swap to servo if needed)
|
PWM10 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #2 or servo #2 (swap to servo if needed)
|
||||||
PWM11 | (TYPE_M << 8), // motor #1 or #3
|
PWM11 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #1 or #3
|
||||||
PWM12 | (TYPE_M << 8),
|
PWM12 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM13 | (TYPE_M << 8),
|
PWM13 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM14 | (TYPE_M << 8), // motor #4 or #6
|
PWM14 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #4 or #6
|
||||||
0xFFFF
|
0xFFFF
|
||||||
};
|
};
|
||||||
|
|
||||||
static const uint16_t airPPM[] = {
|
static const uint16_t airPPM[] = {
|
||||||
PWM1 | (TYPE_IP << 8), // PPM input
|
PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input
|
||||||
PWM9 | (TYPE_M << 8), // motor #1
|
PWM9 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #1
|
||||||
PWM10 | (TYPE_M << 8), // motor #2
|
PWM10 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #2
|
||||||
PWM11 | (TYPE_S << 8), // servo #1
|
PWM11 | (MAP_TO_SERVO_OUTPUT << 8), // servo #1
|
||||||
PWM12 | (TYPE_S << 8),
|
PWM12 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM13 | (TYPE_S << 8),
|
PWM13 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM14 | (TYPE_S << 8), // servo #4
|
PWM14 | (MAP_TO_SERVO_OUTPUT << 8), // servo #4
|
||||||
PWM5 | (TYPE_S << 8), // servo #5
|
PWM5 | (MAP_TO_SERVO_OUTPUT << 8), // servo #5
|
||||||
PWM6 | (TYPE_S << 8),
|
PWM6 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM7 | (TYPE_S << 8),
|
PWM7 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM8 | (TYPE_S << 8), // servo #8
|
PWM8 | (MAP_TO_SERVO_OUTPUT << 8), // servo #8
|
||||||
0xFFFF
|
0xFFFF
|
||||||
};
|
};
|
||||||
|
|
||||||
static const uint16_t airPWM[] = {
|
static const uint16_t airPWM[] = {
|
||||||
PWM1 | (TYPE_IW << 8), // input #1
|
PWM1 | (MAP_TO_PWM_INPUT << 8), // input #1
|
||||||
PWM2 | (TYPE_IW << 8),
|
PWM2 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM3 | (TYPE_IW << 8),
|
PWM3 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM4 | (TYPE_IW << 8),
|
PWM4 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM5 | (TYPE_IW << 8),
|
PWM5 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM6 | (TYPE_IW << 8),
|
PWM6 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM7 | (TYPE_IW << 8),
|
PWM7 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM8 | (TYPE_IW << 8), // input #8
|
PWM8 | (MAP_TO_PWM_INPUT << 8), // input #8
|
||||||
PWM9 | (TYPE_M << 8), // motor #1
|
PWM9 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #1
|
||||||
PWM10 | (TYPE_M << 8), // motor #2
|
PWM10 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #2
|
||||||
PWM11 | (TYPE_S << 8), // servo #1
|
PWM11 | (MAP_TO_SERVO_OUTPUT << 8), // servo #1
|
||||||
PWM12 | (TYPE_S << 8),
|
PWM12 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM13 | (TYPE_S << 8),
|
PWM13 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM14 | (TYPE_S << 8), // servo #4
|
PWM14 | (MAP_TO_SERVO_OUTPUT << 8), // servo #4
|
||||||
0xFFFF
|
0xFFFF
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CC3D
|
#ifdef CC3D
|
||||||
static const uint16_t multiPPM[] = {
|
static const uint16_t multiPPM[] = {
|
||||||
PWM1 | (TYPE_IP << 8), // PPM input
|
PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input
|
||||||
PWM7 | (TYPE_M << 8), // Swap to servo if needed
|
PWM7 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM8 | (TYPE_M << 8), // Swap to servo if needed
|
PWM8 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM9 | (TYPE_M << 8),
|
PWM9 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM10 | (TYPE_M << 8),
|
PWM10 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM11 | (TYPE_M << 8),
|
PWM11 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM12 | (TYPE_M << 8),
|
PWM12 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM2 | (TYPE_M << 8), // Swap to servo if needed
|
PWM2 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM3 | (TYPE_M << 8), // Swap to servo if needed
|
PWM3 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM4 | (TYPE_M << 8), // Swap to servo if needed
|
PWM4 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM5 | (TYPE_M << 8), // Swap to servo if needed
|
PWM5 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
PWM6 | (TYPE_M << 8), // Swap to servo if needed
|
PWM6 | (MAP_TO_MOTOR_OUTPUT << 8), // Swap to servo if needed
|
||||||
0xFFFF
|
0xFFFF
|
||||||
};
|
};
|
||||||
static const uint16_t multiPWM[] = {
|
static const uint16_t multiPWM[] = {
|
||||||
PWM1 | (TYPE_IW << 8), // input #1
|
PWM1 | (MAP_TO_PWM_INPUT << 8), // input #1
|
||||||
PWM2 | (TYPE_IW << 8),
|
PWM2 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM3 | (TYPE_IW << 8),
|
PWM3 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM4 | (TYPE_IW << 8),
|
PWM4 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM5 | (TYPE_IW << 8),
|
PWM5 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM6 | (TYPE_IW << 8), // input #6
|
PWM6 | (MAP_TO_PWM_INPUT << 8), // input #6
|
||||||
PWM7 | (TYPE_M << 8), // motor #1 or servo #1 (swap to servo if needed)
|
PWM7 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #1 or servo #1 (swap to servo if needed)
|
||||||
PWM8 | (TYPE_M << 8), // motor #2 or servo #2 (swap to servo if needed)
|
PWM8 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #2 or servo #2 (swap to servo if needed)
|
||||||
PWM9 | (TYPE_M << 8), // motor #1 or #3
|
PWM9 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #1 or #3
|
||||||
PWM10 | (TYPE_M << 8),
|
PWM10 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM11 | (TYPE_M << 8),
|
PWM11 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM12 | (TYPE_M << 8), // motor #4 or #6
|
PWM12 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #4 or #6
|
||||||
0xFFFF
|
0xFFFF
|
||||||
};
|
};
|
||||||
|
|
||||||
static const uint16_t airPPM[] = {
|
static const uint16_t airPPM[] = {
|
||||||
PWM1 | (TYPE_IP << 8), // PPM input
|
PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input
|
||||||
PWM7 | (TYPE_M << 8),
|
PWM7 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM8 | (TYPE_M << 8),
|
PWM8 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM9 | (TYPE_S << 8),
|
PWM9 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM10 | (TYPE_S << 8),
|
PWM10 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM11 | (TYPE_S << 8),
|
PWM11 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM12 | (TYPE_S << 8),
|
PWM12 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM2 | (TYPE_S << 8),
|
PWM2 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM3 | (TYPE_S << 8),
|
PWM3 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM4 | (TYPE_S << 8),
|
PWM4 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM5 | (TYPE_S << 8),
|
PWM5 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
PWM6 | (TYPE_S << 8),
|
PWM6 | (MAP_TO_SERVO_OUTPUT << 8),
|
||||||
0xFFFF
|
0xFFFF
|
||||||
};
|
};
|
||||||
|
|
||||||
static const uint16_t airPWM[] = {
|
static const uint16_t airPWM[] = {
|
||||||
PWM1 | (TYPE_IW << 8), // input #1
|
PWM1 | (MAP_TO_PWM_INPUT << 8), // input #1
|
||||||
PWM2 | (TYPE_IW << 8),
|
PWM2 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM3 | (TYPE_IW << 8),
|
PWM3 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM4 | (TYPE_IW << 8),
|
PWM4 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM5 | (TYPE_IW << 8),
|
PWM5 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM6 | (TYPE_IW << 8), // input #6
|
PWM6 | (MAP_TO_PWM_INPUT << 8), // input #6
|
||||||
PWM7 | (TYPE_M << 8), // motor #1
|
PWM7 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #1
|
||||||
PWM8 | (TYPE_M << 8), // motor #2
|
PWM8 | (MAP_TO_MOTOR_OUTPUT << 8), // motor #2
|
||||||
PWM9 | (TYPE_S << 8), // servo #1
|
PWM9 | (MAP_TO_SERVO_OUTPUT << 8), // servo #1
|
||||||
PWM10 | (TYPE_S << 8), // servo #2
|
PWM10 | (MAP_TO_SERVO_OUTPUT << 8), // servo #2
|
||||||
PWM11 | (TYPE_S << 8), // servo #3
|
PWM11 | (MAP_TO_SERVO_OUTPUT << 8), // servo #3
|
||||||
PWM12 | (TYPE_S << 8), // servo #4
|
PWM12 | (MAP_TO_SERVO_OUTPUT << 8), // servo #4
|
||||||
0xFFFF
|
0xFFFF
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CJMCU
|
#ifdef CJMCU
|
||||||
static const uint16_t multiPPM[] = {
|
static const uint16_t multiPPM[] = {
|
||||||
PWM1 | (TYPE_IP << 8), // PPM input
|
PWM1 | (MAP_TO_PPM_INPUT << 8), // PPM input
|
||||||
PWM2 | (TYPE_M << 8),
|
PWM7 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM3 | (TYPE_M << 8),
|
PWM14 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM4 | (TYPE_M << 8),
|
PWM8 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
PWM5 | (TYPE_M << 8),
|
PWM13 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
0xFF
|
0xFF
|
||||||
};
|
};
|
||||||
|
|
||||||
static const uint16_t multiPWM[] = {
|
static const uint16_t multiPWM[] = {
|
||||||
PWM1 | (TYPE_IP << 8), // PPM input
|
PWM1 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM2 | (TYPE_M << 8),
|
PWM2 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM3 | (TYPE_M << 8),
|
PWM3 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM4 | (TYPE_M << 8),
|
PWM4 | (MAP_TO_PWM_INPUT << 8),
|
||||||
PWM5 | (TYPE_M << 8),
|
PWM9 | (MAP_TO_PWM_INPUT << 8),
|
||||||
|
PWM10 | (MAP_TO_PWM_INPUT << 8),
|
||||||
|
PWM7 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
|
PWM14 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
|
PWM8 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
|
PWM13 | (MAP_TO_MOTOR_OUTPUT << 8),
|
||||||
0xFF
|
0xFF
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -322,27 +327,27 @@ pwmOutputConfiguration_t *pwmInit(drv_pwm_config_t *init)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// hacks to allow current functionality
|
// hacks to allow current functionality
|
||||||
if (type == TYPE_IW && !init->useParallelPWM)
|
if (type == MAP_TO_PWM_INPUT && !init->useParallelPWM)
|
||||||
type = 0;
|
type = 0;
|
||||||
|
|
||||||
if (type == TYPE_IP && !init->usePPM)
|
if (type == MAP_TO_PPM_INPUT && !init->usePPM)
|
||||||
type = 0;
|
type = 0;
|
||||||
|
|
||||||
if (init->useServos && !init->airplane) {
|
if (init->useServos && !init->airplane) {
|
||||||
#if defined(STM32F10X_MD) || defined(CHEBUZZF3)
|
#if defined(STM32F10X_MD) || defined(CHEBUZZF3)
|
||||||
// remap PWM9+10 as servos
|
// remap PWM9+10 as servos
|
||||||
if (timerIndex == PWM9 || timerIndex == PWM10)
|
if (timerIndex == PWM9 || timerIndex == PWM10)
|
||||||
type = TYPE_S;
|
type = MAP_TO_SERVO_OUTPUT;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (defined(STM32F303xC) || defined(STM32F3DISCOVERY)) && !defined(CHEBUZZF3)
|
#if (defined(STM32F303xC) || defined(STM32F3DISCOVERY)) && !defined(CHEBUZZF3)
|
||||||
// remap PWM 5+6 or 9+10 as servos - softserial pin pairs require timer ports that use the same timer
|
// remap PWM 5+6 or 9+10 as servos - softserial pin pairs require timer ports that use the same timer
|
||||||
if (init->useSoftSerial) {
|
if (init->useSoftSerial) {
|
||||||
if (timerIndex == PWM5 || timerIndex == PWM6)
|
if (timerIndex == PWM5 || timerIndex == PWM6)
|
||||||
type = TYPE_S;
|
type = MAP_TO_SERVO_OUTPUT;
|
||||||
} else {
|
} else {
|
||||||
if (timerIndex == PWM9 || timerIndex == PWM10)
|
if (timerIndex == PWM9 || timerIndex == PWM10)
|
||||||
type = TYPE_S;
|
type = MAP_TO_SERVO_OUTPUT;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -350,22 +355,22 @@ pwmOutputConfiguration_t *pwmInit(drv_pwm_config_t *init)
|
||||||
if (init->extraServos && !init->airplane) {
|
if (init->extraServos && !init->airplane) {
|
||||||
// remap PWM5..8 as servos when used in extended servo mode
|
// remap PWM5..8 as servos when used in extended servo mode
|
||||||
if (timerIndex >= PWM5 && timerIndex <= PWM8)
|
if (timerIndex >= PWM5 && timerIndex <= PWM8)
|
||||||
type = TYPE_S;
|
type = MAP_TO_SERVO_OUTPUT;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == TYPE_IP) {
|
if (type == MAP_TO_PPM_INPUT) {
|
||||||
ppmInConfig(timerHardwarePtr);
|
ppmInConfig(timerHardwarePtr);
|
||||||
} else if (type == TYPE_IW) {
|
} else if (type == MAP_TO_PWM_INPUT) {
|
||||||
pwmInConfig(timerHardwarePtr, channelIndex);
|
pwmInConfig(timerHardwarePtr, channelIndex);
|
||||||
channelIndex++;
|
channelIndex++;
|
||||||
} else if (type == TYPE_M) {
|
} else if (type == MAP_TO_MOTOR_OUTPUT) {
|
||||||
if (init->motorPwmRate > 500) {
|
if (init->motorPwmRate > 500) {
|
||||||
pwmBrushedMotorConfig(timerHardwarePtr, pwmOutputConfiguration.motorCount, init->motorPwmRate, init->idlePulse);
|
pwmBrushedMotorConfig(timerHardwarePtr, pwmOutputConfiguration.motorCount, init->motorPwmRate, init->idlePulse);
|
||||||
} else {
|
} else {
|
||||||
pwmBrushlessMotorConfig(timerHardwarePtr, pwmOutputConfiguration.motorCount, init->motorPwmRate, init->idlePulse);
|
pwmBrushlessMotorConfig(timerHardwarePtr, pwmOutputConfiguration.motorCount, init->motorPwmRate, init->idlePulse);
|
||||||
}
|
}
|
||||||
pwmOutputConfiguration.motorCount++;
|
pwmOutputConfiguration.motorCount++;
|
||||||
} else if (type == TYPE_S) {
|
} else if (type == MAP_TO_SERVO_OUTPUT) {
|
||||||
pwmServoConfig(timerHardwarePtr, pwmOutputConfiguration.servoCount, init->servoPwmRate, init->servoCenterPulse);
|
pwmServoConfig(timerHardwarePtr, pwmOutputConfiguration.servoCount, init->servoPwmRate, init->servoCenterPulse);
|
||||||
pwmOutputConfiguration.servoCount++;
|
pwmOutputConfiguration.servoCount++;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue