摘要
本文档只有记录分析ardupilot飞控代码解锁的过程,如果有分析不到的地方,欢迎批评指导,谢谢,联系方式:18129927205
重点标志变量:
_flags.armed=0表示没有解锁,
_flags.armed=1表示解锁
***arming_counter解锁上锁计数标志位
channel_yaw->get_control_in(); //获得偏航值,传递给tmp变量,这个值通过pwm转换的角度范围是-4500到+4500
解锁上锁思路整理:首先判断油门控制量的值是否大于0,如果大于0,不进行任何计数操作,直接返回,然后进行偏航通道的判断,以美国手为例,偏航在最右边进行解锁操作,偏航在最左边进行解锁操作,偏航在中间不进行操作。细节看visio流程图。
目录
文章目录
1.代码分析
(1)首先上传需要看的代码
void Copter::arm_motors_check()
{
static int16_t arming_counter;
// 确保油门值比较低--------------------------------------ensure throttle is down
if (channel_throttle->get_control_in() > 0) //获得三通道油门值,如果大于0,直接返回,不进行解锁操作