程序架构说明:
主要文件
main.c: 例化IO,加载驱动
com.c:打印部分
IOI2C.C: MPU6050 HMC5883 i2c驱动
MPU6050.C: MPU6050驱动及数据读入处理
HMC5883.C: HMC5883驱动及数据读入处理
eeprom.c: 常规数据存储
fc.c: 重要,数据处理,及所有数据耦合,处理。
重要函数:fc.c内
void fly_main(void): 全局处理,协调各部分数据调入,处理
void moto_math(void):重要,姿态数据处理,计算,输出到电机,整机计算在这里,
void PPM_main_work(void):PPM遥控数据处理 供 moto_math使用
void PID_data_out(void): PID数据调出 供 moto_math使用
void WIFI_main_work(void):WIFI数据处理,供 moto_math使用
重要点:
1,moto_math(void)内
#ifndef moto_PPM_OUT // 未定义,PWM输出 定义,PPM脉宽输出
未定义,PWM输出,控制MOS,输出直流电机
定义的话,即为输出PPM信号,可以控制商用无刷电调
2,fc.c内
RUN.status: //运行状态,0无信号 1,启动 200.停机,
3,PPM控制和WIFI控制可同时使用,
如果有WIFI控制信号时,PPM自动关闭,
如果WIFI信号丢失,自动打开PPM控制
不想用PPM控制或WIFI控制的网友,只需更改将控制数据输入到PPM[]数组即可。