@floatsd
2016-05-14T20:50:09.000000Z
字数 1399
阅读 874
note_DSP
新建工程,添加文件(头文件,源文件,CMD文件)如下:

更改build option如下:



interrupt void cpu_timer0_isr(void) {PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;CpuTimer0Regs.TCR.bit.TIF = 1;CpuTimer0Regs.TCR.bit.TRB = 1;if (nCount == 0) {LEDS = uLBD; //将16进制数写入LED所在地址uLBD++;uLBD %= 16; //确保uLBD在16以内}nCount++;nCount %= 194; //周期值为194个Timer周期}
| i | 小灯 | i | 小灯 | i | 小灯 | i | 小灯 |
|---|---|---|---|---|---|---|---|
| 0 | 0000 | 1 | 0001 | 2 | 0010 | 3 | 0011 |
| 4 | 0100 | 5 | 0101 | 6 | 0110 | 7 | 0111 |
| 8 | 1000 | 9 | 1001 | 10 | 1010 | 11 | 1011 |
| 12 | 1100 | 13 | 1101 | 14 | 1110 | 15 | 1111 |
CpuTimer0Regs.PRD.all = 0xffff;函数里的值;重复步骤5,6 观察实验现象。 简述CPU 定时器0中断的配置方法,给出定时器中断程序的流程图。
TIMER0中断为典型的PIE中断,中断程序流程图如下:

以定时器0、定时器1 的中断为例,试比较PIE级中断与CPU 级中断的异同?
TMS320F2812片内有3个32位通用定时器、这些定时器有一个32位计数器,当计数器递减计数到0时,产生一个中断,其中TIMER0中断为PIE中断,TIMER1中断直接连到CPU的INT13。
同:
异: