下载时选择内部时钟24MHZ, 设置用户EEPROM大小为2K或以上. 四轴上电待机:上电后,航灯不亮,接收机LED闪烁,此时打开遥控器,将左右油门下拉到最小,接收机收到信号LED常亮. 表示RF通讯已连接。此时蜂鸣器"哔"一声,航灯闪烁,表示待机模式。四轴启动:将遥控器左右操纵杆掰成下内八,启动四轴,四轴"哔"一声,4个螺旋桨开始低速旋转,航灯常亮。四轴飞行:起飞后,可以操纵右手的俯仰、横滚操纵杆,实现前后左右或任意方向的飞行。 左手油门杆左掰是航向逆时针转,右掰是航向顺时钟转。四轴下降停止:收油门,四轴逐渐下降到地面,然后两操纵杆掰成下外八,停止四轴,重新处于待机模式。四轴水平校准:将四轴放置于水平地面,处于待机模式,然后两操纵杆掰成上内八,四轴"哔"一声进入校准,完成后"哔哔"两声完成校准。四轴取消水平校准:将四轴放置于水平地面,处于待机模式,然后两操纵杆掰成上外八,四轴"哔"一声取消校准。取消水平校准或未进行水平校准过的四轴,起飞时即使无风也可能会有明显漂移。电池低压报警:当电池低压时,蜂鸣器"哔哔"报警,同时航灯闪烁,此时请尽快回航降落。无遥控信号异常:当四轴在空中突然收不到遥控信号时,四轴蜂鸣器发出"哔哔哔"报警,同时航灯闪烁,四轴保持水平,逐渐自动减小油门降落。定义串口的波特率,串口的数据包长度,下面昨天看的驱动,最后是IO的定义。矫正参数就是置0,还有就是一些姿态角的初始定义,欧拉角,角度和加速度。
欧拉角是由三个角组成,这三个角分别是Yaw,Pitch,Roll。 Yaw 表示绕y轴旋转的角度,Pitch表示绕x轴旋转的角度,Roll表示绕z轴旋转的角度。 也就是说,任意的旋转角度都可以通过这三次按照先后顺序旋转得到。 欧拉角的定义 tmp是中间变量,下面是中位的遥控变量
IMU的缓存数组
PPM简单的将多个通道的数值一个接一个合并进一个通道,用2个高电平之间的宽度来表示一个通道的值。PPM协议最多传输10个通道,使用一个定时器就可以轻松解决了。因为每一帧信号的尾部必须加入一个足够长的空白(显著超过一个正常PWM信号的宽度)来分隔前后两个信号,每一帧能传输的信号通道最多只能到10个。串口的一些配置
校准里面的一些变量
PPM定时器的一个计算 串口1的配置
这个是中断的配置 打印字符串
串口的信息写到缓存区
数字和字符的转换 返回的参数信息 设置Timer2作为波特率生成器 只有在规定的杆位下才可以进入校准序列 校准3个组件 这个是具体的细节,也没有什么好说的 可以复用的代码,最后输出的是角度信息 代码的端口先重置一下 后面设置PWM的引脚
初始化ADC功能
捕获中断 这个读取陀螺仪的静止误差是写到EEPROM里面的 四轴上电待机:上电后,航灯不亮,接收机LED闪烁,此时打开遥控器,将左右油门下拉到最小,接收机收到信号LED常亮。 在一个大循环里面跑俩个任务,一个是解码PPM的具体数字信号,二是在中断里面检测一些特殊的打杆指令进入一些功能,还会有电压,蜂鸣器这些功能。 这个PPM的解码,很简单
通过算里面的脉宽来决定杆量 这个就是具体拿到以后校验和装载的过程
算好的值加到这里,给PWM输出去
8ms???是个8ms的中断吗?
定义在这里 开始进入校准的步骤 这个是电压的测量和蜂鸣器的控制
另一段测量
最后是上次讲的一个定义 这个是串口的处理 这个就是串口的发送功能
http://www.caotama.com/1983242.html
https://mcu.eetrend.com/tag/xdata
http://j.bi-xenon.cn/item/548529515527.ht
|