LOS Interface
This space is for documentation on LOS Interface.
LOS_Actuators:
//Config
const uint8_t NUM_OF_ACTUATORS = 5;
#define DSHOT_PWM
const PWMPinConfig PWM_CONFIG[MAX_CHANNELS]
{
{PWM1_Pin, PWM1_GPIO_Port, &htim1, TIM_CHANNEL_1, true, DMAMotorBuffer1, TIM_DMA_ID_CC1, TIM_DMA_CC1},
{PWM2_Pin, PWM2_GPIO_Port, &htim1, TIM_CHANNEL_2, true, DMAMotorBuffer2, TIM_DMA_ID_CC2, TIM_DMA_CC2},
{PWM3_Pin, PWM3_GPIO_Port, &htim1, TIM_CHANNEL_3, true, DMAMotorBuffer3, TIM_DMA_ID_CC3, TIM_DMA_CC3},
{PWM4_Pin, PWM4_GPIO_Port, &htim1, TIM_CHANNEL_4, true, DMAMotorBuffer4, TIM_DMA_ID_CC4, TIM_DMA_CC4},
{PWM6_Pin, PWM6_GPIO_Port, &htim3, TIM_CHANNEL_1, false, {0}, 0, 0},
{PWM10_Pin, PWM10_GPIO_Port, &htim3, TIM_CHANNEL_2, false, {0}, 0, 0},
{PWM11_Pin, PWM11_GPIO_Port, &htim3, TIM_CHANNEL_3, false, {0}, 0, 0},
{PWM12_Pin, PWM12_GPIO_Port, &htim3, TIM_CHANNEL_4, false, {0}, 0, 0}
}; //something like this
=====================================================
static uint8_t motorOutputs[NUM_OF_ACTUATORS] = {0};
//Input
typedef struct losActuatorsIndividual_t{
uint8_t actuator_id;
uint8_t output;
};
void losActuatorSet(losActuatorsIndividual_t val)
{
//call the appropriate driver and pass along the struct info
motorOutputs[val.actuator_id] = output;
}
uint8_t getActuator(uint8_t channel)
{
return motorOutputs[channel];
}
LOS_Link:
//Config
#define PPM, CRSF, SBUS
const uint8_t NUM_RX_CHANNELS 12
//OUTPUT
typedef struct losLinkRx_t{
uint8_t rssi;
uint8_t rx_channels[NUM_RX_CHANNELS];
};
losLinkRx_t losLinkGetRx(void);