我使用clock追踪定时器程序里面每个语句段所需要的周期数,有个地方不解请指教一下。
部分程序如下:
void main(void)
{
......
......
......
StartCpuTimer0(); 此句需要3个周期
IER |=M_INT1; 2个周期
PieCtrlRegs.PIEIER1.bit.INTx7=1; 2个周期
EINT; 2个周期
ERTM; 2个周期
i=0; 2个周期
for(; ;) 不清楚
{
}
}
interrupt void ISRTimer0(void)
{
CpuTimer0.InterruptCount++;
.......
......
......
}
定时为1秒,也就是150MHz.
从StartCpuTimer0() 到进入中断服务程序需要150MHz+29个周期。
从StartCpuTimer0()到for(; ;)前需要13个周期
CPU需要9个周期获取中断向量和保存重要的CPU寄存器
29-13-9=7,剩余的7个周期用来做什么了?