这个文件代码有点乱啊,反正没怎么看懂,涉及到一键起飞和降落,以及关于不同任务对应不同的灯光的切换。而且注释也还可以,凑活着看下呗,其实这个并不是什么关键文件,看不懂就算了呗,下一个
#include "Ano_FlightCtrl.h"
#include "Ano_Imu.h"
#include "Drv_icm20602.h"
#include "Ano_MagProcess.h"
#include "Drv_spl06.h"
#include "Ano_MotionCal.h"
#include "Ano_AttCtrl.h"
#include "Ano_LocCtrl.h"
#include "Ano_AltCtrl.h"
#include "Ano_MotorCtrl.h"
#include "Drv_led.h"
#include "Ano_RC.h"
#include "Drv_vl53l0x.h"
#include "Ano_OF.h"
/*PID参数初始化*/
void All_PID_Init(void)
{
/*姿态控制,角速度PID初始化*/
Att_1level_PID_Init();
/*姿态控制,角度PID初始化*/
Att_2level_PID_Init();
/*高度控制,高度速度PID初始化*/
Alt_1level_PID_Init();
/*高度控制,高度PID初始化*/
Alt_2level_PID_Init();
/*位置速度控制PID初始化*/
Loc_1level_PID_Init();
}
/*控制参数改变任务*/
//也不知道单独设置外环和内环的KI有什么用
void ctrl_parameter_change_task()
{
if(0)
{
Set_Att_2level_Ki(0);
}
else
{
if(flag.auto_take_off_land ==AUTO_TAKE_OFF)
{
Set_Att_1level_Ki(2);
}
else
{
Set_Att_1level_Ki(1);
}
Set_Att_2level_Ki(1);
}
}
/************************************************************************************************************
*************************************************************************************************************
*************************************************************************************************************
*************************************************************************************************************
*************************************************************************************************************/
/*一键翻滚(暂无)*/
void one_key_roll()
{
if(flag.flying && flag.auto_take_off_land == AUTO_TAKE_OFF_FINISH)
{
if(rolling_flag.roll_mode==0)
{
rolling_flag.roll_mode = 1;
}
}
}
static u16 one_key_taof_start; //感觉像是一个CNT和FLAG
/*一键起飞任务(主要功能为延迟)*/
void one_key_take_off_task(u16 dt_ms)
{
if(one_key_taof_start != 0) //如过不为0那么必然是解锁了,见下面一键起飞函数
{
one_key_taof_start += dt_ms; //延迟,等待至大于1400
if(one_key_taof_sta