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.

280049c cla触发问题

我用280049  的HRCAP功能,采样和校准中断都放在cla中处理。我把task1设置为ecap的4个边沿触发事件中断,进中断的频率大概500khz,task2任务设置成校准,大概1.6ms触发一次。运行仿真发现,task1正常响应和处理而task2一直不能进入。我的问题 是不是因为task1优先级高,执行频率高,但task2中断被忽略?当我把task1和task2任务的函数对换,两个都能正常工作了。

  • 有可能的,如果两个中断同时出现,被标记(MIFR 寄存器)且被使能(MIER 寄存器)的最高优先级任务被执行。一旦一个任务完成,那么被标记且被使能的最高优先级中断将自动开始。
    这样的话有可能你的task2就一直执行不了
  • 谢谢 有没有办法能测量到CLA task执行的时间?
  • 可以采用一个timer,然后使用软件触发CLA工作,触发CLA开始工作后,timer开始计时,并且在CLA工作完毕后,置起一个标志位,而主函数通过循环检测此标志位来判断何时停止timer从而得到当前计数值后计算CLA运算时间。
  • 谢谢   如果用CCS  查看CLA  task的反汇编  查有多少条汇编指令就是执行时间的周期数,这样对不对?

  • 汇编指令的执行时间周期也是不同的吧?
    突然想到可以试一下CCS自带clock功能,在debug界面的run - clock - enable使能时钟,但是我没在CLA中使用过这个功能,因为CLA里面没办法打断点(或者你可以手动添加断点语句应该也可以)。你可以试一下在进CLA和出CLA的地方打下断点,稍微会有些误差,但能看到大概时间
  • 谢谢  已经通过timer测量出task的执行时间。debug模式仿真c28程序可以使用clock测量执行时间,当仿真CLA时clock无效,我使用的软件版本是CCS9.3.0

  • 好的,感谢反馈