mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-24 00:35:39 +03:00
git-svn-id: https://afrodevices.googlecode.com/svn/trunk/baseflight@390 7c89a4a9-59b9-e629-4cfe-3a2d53b20e61
46 lines
1.2 KiB
C
Executable file
46 lines
1.2 KiB
C
Executable file
#pragma once
|
|
|
|
#define MAX_MOTORS 12
|
|
#define MAX_SERVOS 8
|
|
#define MAX_INPUTS 8
|
|
|
|
typedef struct drv_pwm_config_t {
|
|
bool enableInput;
|
|
bool usePPM;
|
|
bool useUART;
|
|
bool useServos;
|
|
bool extraServos; // configure additional 4 channels in PPM mode as servos, not motors
|
|
bool airplane; // fixed wing hardware config, lots of servos etc
|
|
uint8_t adcChannel; // steal one RC input for current sensor
|
|
uint16_t motorPwmRate;
|
|
uint16_t servoPwmRate;
|
|
uint16_t failsafeThreshold;
|
|
} drv_pwm_config_t;
|
|
|
|
// This indexes into the read-only hardware definition structure in drv_pwm.c, as well as into pwmPorts[] structure with dynamic data.
|
|
enum {
|
|
PWM1 = 0,
|
|
PWM2,
|
|
PWM3,
|
|
PWM4,
|
|
PWM5,
|
|
PWM6,
|
|
PWM7,
|
|
PWM8,
|
|
PWM9,
|
|
PWM10,
|
|
PWM11,
|
|
PWM12,
|
|
PWM13,
|
|
PWM14,
|
|
MAX_PORTS
|
|
};
|
|
|
|
void pwmICConfig(TIM_TypeDef *tim, uint8_t channel, uint16_t polarity);
|
|
|
|
bool pwmInit(drv_pwm_config_t *init); // returns whether driver is asking to calibrate throttle or not
|
|
void pwmWriteMotor(uint8_t index, uint16_t value);
|
|
void pwmWriteServo(uint8_t index, uint16_t value);
|
|
uint16_t pwmRead(uint8_t channel);
|
|
|
|
// void pwmWrite(uint8_t channel, uint16_t value);
|