TI中文支持网
TI专业的中文技术问题搜集分享网站

F28335定时器启动计时问题

我使用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个周期用来做什么了?

rookiecalf:

C语言中有些跳转什么的,也会有消耗,如果不是非常大的消耗就不要去追究了。如果非要追究,看看是否可以在汇编级进行调试。

我使用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个周期用来做什么了?

xiaobo wu:

回复 rookiecalf:

非常感谢您的提示!

赞(0)
未经允许不得转载:TI中文支持网 » F28335定时器启动计时问题
分享到: 更多 (0)