主题中讨论的其他器件:C2000WARE
我们使用 CLA 来加快电力电子系统的控制律执行、并通过切换 GPIO 来了解 CLA 上的执行时间。 我们有一个系统使用 EPWM1来触发 ADC 测量、EOC 进行 ADC 测量、然后触发 CLA 任务1。 这一切都按预期运行。 最初、我刚刚切换了 CLA 任务中的一个 LED 以检查所花费的时间、这里是 CLA 任务代码:-
//-----------------------------------------------------------------------------
//
// Task 1 - PWM control loop
//
// Description: PWM control logic can be implemented here.
//
//-----------------------------------------------------------------------------
__attribute__((interrupt)) void Cla1Task1 ( void )
{
//
// Turn ON Loop1 Profiling GPIO
//
GPIO_writePin(16,1);
loop1_task();
//
// Turn OFF Loop1 Profiling GPIO
//
GPIO_writePin(16,0);
}
此任务按预期每20us 触发一次、但 LED 的开启和关闭切换需要~2us。 这看起来很长一段时间、尤其是对于 CLA 而言、它应该是一个非常快速的外设。 CLA 直接控制 hte GPIO、我们得到的结果是:-

有没有任何想法、为什么在 CLA 任务中像这样打开和关闭 LED 会花费如此长的时间来执行?

