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.

[FAQ] [参考译文] [常见问题解答] CLA:如何计算任务的持续时间?

Guru**** 1371680 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/789505/faq-cla-how-can-i-calculate-the-duration-of-a-task

问:如何计算 CLA 任务执行所需的时间?  或者如何描述 CLA 任务? 应包括哪些开销?

C2000培训视频:https://training.ti.com/search-catalog/field_language/ZH-CN?keywords=C2000&start%5Bdate%5D=&end%5Bdate%5D=

C2000培训小程序码

 

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    答:

    使用计时器:

    一种方法是使用自由运行的计时器来捕获任务执行所花费的周期数。  CLA 可访问 PWM 计时器。  例如、您可以按如下方式捕获 C 语言中的周期数:

    1. 在任务开始时、CLA 读取定时器
    2. 执行任务
    3. 任务结束时、CLA 再次读取计时器
    4. 计算(1)和(3)之间的周期数

    在 C 语言中、这看起来类似于:


    CT1 = EPwm1Regs.TBCTR; <<此处测量代码>> CT2 = EPwm1Regs.TBCTR; Δ_CT = CT2 - CT1;

    使用 GPIO 引脚:

    在某些器件上、CLA 可直接访问 GPIO 引脚。  在这种情况下、CLA 可以在要测量的代码前后切换引脚、而不是读取计时器。  使用示波器监控引脚、以测量时间差。  请参阅特定器件的 TRM。

    开销:

    由于触发 CLA 任务并通知 C28x 它已经完成、将会产生一些开销。  为了测试这个开销、你可以使用 C28x 上的一个定时器来为 CLA 任务的开始和停止计时。  

    1. 使用 C28x 读取计时器
    2. 通过 C28x 软件启动 CLA 任务
    3. 等待 MIRUN 位清零
    4. 使用 C28x 读取计时器
    5. 计算(1)和(4)之间的差值

    另请参阅此帖子的讨论: https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/738758

    单击此处了解更多 CLA 常见问题解答和资源。