设计思路:
1. 交通灯的实现思路:利用判断ISR中的计数器的计数范围来设置相应的交通灯状态,并且当在一个完整的交通灯状态后将计数器清零。以此往复,实现交通灯的状态变化。
2. 由于本工程需要用到F2812的PIE(片内外设中断扩展)、GPIO(通用I/O接口)、定时器,所以讲原有的CPUTIME.prj工程中涉及到eCAN、SCI、SPI、EV、ADC、McBSP的程序模块屏蔽掉(DSP28_Device.h、DSP28_GlobalPrototypes.h)。由于TIMER1/2被保留用作实时操作系统,所用只能用TIMER0来实现红绿灯的定时器。
3. 通过查询实验板的硬件原理图,合理地初始化LED和DS4对应的GPIO;由于TIMER0对应为第一组PIE的INT1.7,所以将中断服务子程序地址装入INT1.7的地址;初始化TMER0,并设置合理的定时器周期。
4. 中断服务子程序。ISR程序包含一下两个部份。
A. 紧急状态的判断。只有当DS4按键被连续按下50ms后程序认为交通灯进入紧急状态。
B. 正常运行状态。当没有检测到DS4被按下时,执行正常运行交通灯的程序块。具体流程参见ISR流程图。