主题中讨论的其他器件: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 会花费如此长的时间来执行?