写了一大堆,也不知道对不对,贴上来让大家看看
#include "Ano_AltCtrl.h" //高度控制
#include "Ano_Imu.h"
#include "Drv_icm20602.h"
#include "Ano_MagProcess.h"
#include "Drv_spl06.h"
#include "Ano_MotionCal.h" //运动计算
#include "Ano_FlightCtrl.h" //飞行控制
#include "Ano_MotorCtrl.h" //电机控制
#include "Ano_AttCtrl.h" //姿态控制
#include "Ano_LocCtrl.h" //位置控制
//自动起飞速度
static s16 auto_taking_off_speed;
#define AUTO_TAKE_OFF_KP 2.0f
extern _filter_1_st wz_spe_f1;
/**************************************************************************************************
***************************************************************************************************
**************************************************************************************************/
//硬生生没看懂这个一键起飞任务,只能盲目翻译了下
//自动启飞降落任务
void Auto_Take_Off_Land_Task(u8 dT_ms)
{
static u16 take_off_ok_cnt;
//执行一键起飞任务
one_key_take_off_task(dT_ms);
if(flag.fly_ready) //如果已经准备好了
{
if(flag.taking_off) //如果可以起飞
{
if(flag.auto_take_off_land == AUTO_TAKE_OFF_NULL) //如果尚未自动启飞
{
flag.auto_take_off_land = AUTO_TAKE_OFF; //起飞
}
}
}
else
{
auto_taking_off_speed = 0;
flag.auto_take_off_land = AUTO_TAKE_OFF_NULL;
}
if(flag.auto_take_off_land ==AUTO_TAKE_OFF) //接上,如果起飞,
{
take_off_ok_cnt += dT_ms; //延迟等待至2500
auto_taking_off_speed = AUTO_TAKE_OFF_KP *(Ano_Parame.set.auto_take_off_height -