第五十四章 厂长,您可得多来技术科啊! 首页

字体:      护眼 关灯

上一页 目录 下一页

第五十四章 厂长,您可得多来技术科啊!(2/3)

之间定义好转换条件,比如说,自检通过就进待机,待机收到起飞指令就进飞行,飞行检测到低电压就进紧急。”

林默站在他身后,低头看着那张图纸,点点头:

“不错,就是这个思路。”

“状态机的核心是三个东西,状态,事件,动作。”

“当前状态收到一个事件,执行对应的动作,然后迁移到下一个状态,你把这三个东西定义清楚了,程序就不会乱。”

李援朝连连点头,手里的笔飞快地在本子上记着。

“林默拉过一把椅子坐下,拿起桌上的一块飞控板,指着上面的主控芯片。

“还有你这程序架构,别把所有功能都塞在主循环里。”

“中断优先级要分清楚,姿态解算最高优先级,遥控指令第二,图传第三,日志记录最低。”

“姿态解算的周期要固定,比如说每十毫秒中断一次,算一次姿态,调一次PID,这样飞控的响应速度才能跟得上。”

“我之前是把所有东西都放主循环里。”

李援朝挠了挠头,有点不好意思,“跑一遍下来,姿态解算的时间不固定,有时候长有时候短,飞机就不太稳。”

“那是因为你主循环的执行时间不是恒定的。”

林默把飞控板放下,拿起笔在纸上画了一个时序图,“你设一个定时器中断,每五毫秒触发一次,中断服务程序里只做三件事。”

“读传感器,算姿态,调PID。主循环里跑那些不要求实时性的东西,比如图传,日志,遥控指令解析。”

“这样一来,姿态控制的实时性就保证了。”

李援朝盯着那个时序图看了半天,一拍大腿,“厂长,您这一说我就明白了!这就是把实时任务和非实时任务分开处理!”

林默笑了笑,“对,这叫前后台系统架构,前台是中断服务程序,处理紧急的事,后台是主循环,处理不紧急的事。”

“你把这个框架搭好了,后续加功能就不会乱。”

李援朝兴奋的手里的笔都快把本子戳穿了。

他在对微处理器和软件编程不算精通。

林默来了之后,他才开始系统地接触这些新东西。

每次林默来技术科,他都恨不得把脑子里的疑

本章还未完,请点击下一页继续阅读

上一页 目录 下一页