Mikrokopter MK 代码分析2-main分析
来源:互联网 发布:百度网盘登陆网络异常 编辑:程序博客网 时间:2024/05/08 09:45
下面分析Main()主函数过程,分析按照执行顺序依次进行。
{
cli(); 关闭总中断
检测飞控板版本
设置LED相应管脚
关闭看门狗
四通道杆量置零
TIMER0初始化,用于产生控制气压高度计偏置电压的pwm信号,控制蜂鸣器鸣叫以 及电机更新频率。
TIMER2初始化,用于向4017芯片输出pwm信号,从而将1路pwm转换成多路舵机控 制信号。
UART0初始化MK主串口,负责与上位机的信息交互。
RC_INIT();设置ppm信号输入引脚,设置TIMER1的输入捕获功能以解码ppm信号。
ADC_INIT();初始化AD采样,采样信息包括三轴加速度,三轴角速度,气压高度,电 池电量。
I2C_INIT();I2C总线初始化,配置I2C以控制电机。
sei()使能全局中断。
PARAMSET_INIT();设置参数,将参数读入内存中的ParamSet。
检查加速度计是否校准。
检查是否开启高度控制,若开启则校准高度计偏置。
SetNeutral(); //Neutral Reading
While(1)
{
UpdateMotor标志是否更新电机状态
{ MotorControl();
SendMotorData(); }
PcAccess标志是否有上位机请求信息
I2cTimeout标志I2C是否超时需报错
SIO_DEBUG标志是否在串口调试
{ TransmitTxData();
ProcessRxData(); }
检测电池电量。
}
}
主函数中的关键过程:
void MotorControl(void) 通过控制率确定电机控制量
void SendMotorData(void) 发送控制量给电机
void TransmitTxData(void) 负责根据串口接收的指令要求发送相应数据
void ProcessRxData(void) 处理串口接收到的数据,给各种事件标志置位。
- Mikrokopter MK 代码分析2-main分析
- Mikrokopter MK 代码分析1
- Mikrokopter MK 代码分析3-uart分析
- android Main.mk分析
- main.mk分析(1)
- main.mk分析(1)
- Android 的main.mk完整分析
- Android 的main.mk完整分析
- Android 的main.mk完整分析 .
- Android 的main.mk完整分析
- Android 的main.mk完整分析
- Android 编译系统框架分析及main.mk分析
- Android 编译系统(三)Main.mk分析
- Android 编译系统(三)Main.mk分析
- mikrokopter
- Android编译系统(四):Android 编译系统框架分析及main.mk分析
- Android编译系统(四):Android 编译系统框架分析及main.mk分析
- Android编译系统(四):Android 编译系统框架分析及main.mk分析
- Linux C :遍历输出指定目录下的所有文件
- UBUNTU9.10 rhythmbox播放器乱码问题解决
- JSON数据格式
- 深入Python3 (Dive Into Python3)笔记4--字符串
- 使用asax 网站加个今日访问,总访问人数、在线人数
- Mikrokopter MK 代码分析2-main分析
- 深入Python3 (Dive Into Python3)笔记5--正则表达式
- 再说String Pool
- Mikrokopter MK 代码分析3-uart分析
- Winform 窗体怎么暂停自绘
- Jsp/Servlet:实现文件上传与下载
- 数字图像处理--直方图均衡化
- 几种STL容器的基本用法[资料]
- 深入Python3 (Dive Into Python3)笔记6--闭合与生成器