This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

5509a的定时器中断

使用定时器的例程

TIMER_Config timCfg0 = {

  TIMER_CTRL,               /* TCR0 */

  0x0400u,                  /* PRD0 */

  0x0000                    /* PRSC */

};

系统时钟200Mhz

在中断中加一个断点,每次查看运行的cpu时间。

profile中的clock观察没中断一次是1080个cpu cycles ,为什么不是0x400+1然后,1080-1025=55,这55个cpu cycles是中断开销吗?

  • 定时器的复位,和初始化的建立,必然需要消耗CPU时钟,这个55个cpu cycles正是定时器从复位到建立消耗的时钟。

  • 中断服务程序的入栈操作,在菜单:View->Mixed Source/ASM模式下,你可以在ISR的开始部分看到这部分代码;;

    以及CPU对中断信号的响应延时,大概几个周期。

    如果ISR在片外,还要考虑内存访问的延时。

    以上基于系统中没有其它中断使能为前提。