F28035的CLA无法操控IO口,但是可以操控PWM外设。
我们常用IO口置位和清零的办法在CPU的中断函数中测试中断函数的运行时间。
但是这个办法在F28035的CLA任务中不可行。
同样思路,我们改成强制置位PWM输出的电平高低来实现CLA任务的执行时间测量。
例如,配置好PWM5,然后在CLA task5任务开始的地方:
MMOVF32 MR2, #1.0 ;把1给MR2
MF32TOI32 MR2, MR2 ; 把MR2中的数转换成整形,存在MR2中
MMOV32 @_EPwm5Regs.AQCSFRC.all, MR2 ;强制PWM5A输出低
在CLA任务结束之前:
MMOVF32 MR2, #2.0
MF32TOI32 MR2, MR2
MMOV32 @_EPwm5Regs.AQCSFRC.all, MR2 ;强制PWM5A输出高
由于CLA任务通常要完成主要算法的计算,通常被PWMINT周期性触发,所以能够在示波器上监视到PWM5A的输出方波,通过示波器测量低电平时间,基本就是该CLA任务的执行时间。
另外还有一个办法可以相对精确地测量CLA任务的执行时间:通过数CLA任务的汇编指令条数,由于我们的CLA是汇编写的,而大多数汇编指令是单周期指令,所以这个很容易统计。
通过数汇编指令条数乘以时钟周期所得的时间和按照上面方法测量的时间基本是一致的。
对于TI2000系列比较新的dsp,比如 280049 和28388等,他们的CLA是可以直接操控IO口的,所以就很随意了。