定时器0中断<br /><br />我从TI网站上载了一些例子,学习2812。<br />没有电路板,只进行软件仿真。<br />其中一个定时器0中断,发现不进中断。<br />情况是这样的,观察定时器可以计数。<br />本来我定时器周期设为0XFFFFFFFF.<br />可是计到0以后,并不恢复为0XFFFFFFFF,<br />而是0X5F5E100.并且计到0以后,也不进中断。<br />请高手指教,谢谢!我已经被这个问题困扰了好久。<br />下面是主程序:<br />#include "DSP281x_Device.h" // DSP281x Headerfile Include File<br />#include "DSP281x_Examples.h" // DSP281x Examples Include File<br /><br /><br />interrupt void cpu_timer0_isr(void);<br /><br />void main(void)<br />{<br /><br /> InitSysCtrl();<br /><br /> DINT;<br /><br /> InitPieCtrl();<br /> <br /><br /> IER = 0x0000;<br /> IFR = 0x0000;<br /><br /> InitPieVectTable();<br /><br /><br /> EALLOW; // This is needed to write to EALLOW protected registers<br /> PieVectTable.TINT0 = &cpu_timer0_isr;<br /> EDIS; // This is needed to disable write to EALLOW protected registers<br /><br /> InitCpuTimers(); // For this example, only initialize the Cpu Timers<br /><br /> ConfigCpuTimer(&CpuTimer0, 100, 1000000);<br /> StartCpuTimer0();<br /><br /> IER |= M_INT1;<br /><br /> PieCtrlRegs.PIEIER1.bit.INTx7 = 1;<br /><br /><br /> EINT; // Enable Global interrupt INTM<br /> ERTM; // Enable Global realtime interrupt DBGM<br /><br /> for(;<br /> {asm(" nop";<br /> asm(" nop";<br /> }<br /><br />} <br /><br /><br />interrupt void cpu_timer0_isr(void)<br />{<br /> CpuTimer0.InterruptCount++; //断点在这,但运行不到这里<br /> asm(" nop";<br /> <br /> PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;<br />}<br /><br /> <br /> |
|