华东交通大学 DSP大作业 张艳伟
1程序流程图 开始初始化DSP时钟初始化中断向量中断服务开始初始化定时器改变指示灯状态等待中断产生中断服务结束 图3 程序流程图 2源程序 #include \#include %unsigned int Led_Flag; int i=1; interrupt void ISRTimer2(void); void main(void) { /*初始化系统*/ InitSysCtrl(); /*关中断*/ DINT; IER = 0x0000; IFR = 0x0000; Led_Flag = 0; /*初始化PIE*/ InitPieCtrl(); 第 6页
华东交通大学 DSP大作业 张艳伟
/*初始化PIE中断矢量表*/ InitPieVectTable(); /*初始化外设*/
InitPeripherals();
EALLOW;
PieVectTable.TINT2 = &ISRTimer2; EDIS; /*设置CPU*/
ConfigCpuTimer(&CpuTimer2, 150, 100000);
StartCpuTimer2(); /*开中断*/
IER |= M_INT14;
EINT; // Enable Global interrupt INTM ERTM; // Enable Global realtime interrupt DBGM for(;;);
}
interrupt void ISRTimer2(void) {
CpuTimer2.InterruptCount++; if(Led_Flag == 1) {
*LED = 0; } else {
*LED = i; i<<=1; if(i==0x20) {
Led_Flag = 0;
第 7页
华东交通大学 DSP大作业 张艳伟 }
}
}
Led_Flag = 1;
i=0x02; *LED = 1;
四、实验结果与分析
1、指示灯在定时器的定时中断中按照设计定时闪烁。
2、使用定时器和中断服务程序可以完成许多需要定时完成的任务,比如DSP 定时启动 A/D转换,日常生活中的计时器计数、空调的定时启动和关闭等。
3、在调试程序时,有时需要指示程序工作的状态,可以利用指示灯的闪烁来达到,指示灯灵活的闪烁方式可表达多种状态信息。
第 8页