飞思卡尔智能车大赛技术报告
图4.1 主程序及中断子程序流程图
整个程序分为两大部分,分别是主程序与CCD中断程序,结构框图如图4.1所示。两大部分在程序结构上都使用了流水型结构,以避免代码的交叉调用,多层嵌套。在规划上以模块为目标,尽可能地减少代码的交叉。模块之间仅通过少量的全局变量作为数据交换通道,建立一个强内聚、松耦合的程序框架,达到便于维护、便于阅读、便于调试的目的。
主程序的结构相对比较简单,在完成系统初始化工作后启动1.5us定时中断,之后便进入一个while(1)循环。程序的所有调试相关代码都存放在while循环内,包括车模的红外遥控、PID参数调整、调试信息的输出等。
考虑到数据的采集与分析,包括PID算法本身对时间都有较高的要求,程序的所有数据采集主要集中在中断中完成。1.5us定时中断处理程序主要采集CCD信号,输入捕捉中断主要