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.

[参考译文] TMS320F280049:在 driverlib 中使用 delay 函数

Guru**** 2522770 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1025369/tms320f280049-use-delay-function-in-driverlib

器件型号:TMS320F280049
主题中讨论的其他器件:C2000WARE

尊敬的香榭丽舍

我向我们的客户提出这一问题。

1)  

用户尝试在没有使用 driverlib 中汇编的情况下延迟使用 C28x 上的函数、如下所示使用 CLA ex3。

for (;;)

DELAY_US (1000000);
SYSCTL_DELAY (200000);

但是、用户在构建代码时会遇到以下错误。

说明资源路径位置类型
未解析的符号 F28x_usDelay、首先在./cla_ex3_background_besting_task.obj New_test2 C/C++ problem 中引用

说明资源路径位置类型
未解析的符号 sysctl_delay、首先在./cla_ex3_background_besting_task.obj New_test2 C/C++ problem 中引用

可以使用其他 driverlib 函数、为什么找不到这两个函数?

2) 2)对于 CLA、如何在不使用汇编语言的情况下设置延迟?

黄维恩

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

    韦恩、

    他们是否尝试如下:

    for(;;)
        {
            SysCtl_delay(200000);
        }

    请注意、C 是 SYSCTL_DELAY 中的大写字母

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

    尊敬的 Santosh:

    感谢您的更正。

    是的、 SYSCTL_DELAY 在 C28x 器件上工作。

    对于 CLA、它显示以下警告

    说明资源路径位置类型
    #10461-D 调用 C28函数"C:/TI/c2000/C2000Ware_4_00_00_00_EA2/driverlib/f28003x/driverlib/ccs/Debug/driverlib.lib 中定义的"sysctl_delay"无效 来自 CLA 文件的"。/cla_ex3_background_besting_task_cla.obj" New_test2 C/C++ problem

    1) 1) SYSCTL_DELAY 是否可用于 CLA? 如果不是、为什么它不出错而是处于警告状态?

    2) 2)在不使用中、您是否会向我展示如何在 driverlib 或 bitfield 中使用类似的函数而不使用 MNOP 等汇编语言?

    黄维恩

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="4952" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1025369/tms320f280049-use-delay-function-in-driverlib/3790912 #3790912"]#10461-D 调用 C28函数"sysctl_delay"无效、此函数在"C:/TI/c2000/C2000Ware_4_00_00_00_EA2/driverlib/f28003x/driverlib/ccs/Debug/driverlib.lib 中定义 来自 CLA 文件的"。/cla_ex3_background_besting_task_cla.obj" New_test2 C/C++ problem[/quot]

    这是因为  driverlib.lib 库是针对 C28内核而不是 CLA 内核进行编译的。

    CLA 延迟函数 建议使用 CLA 延迟函数。 我自己也没有测试过。

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

    韦恩、

    您是否能够使用上面链接中建议的 CLA 延迟函数?

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

    尊敬的 Santosh 和 Chester:

    我很困惑。

    我们一直在寻找一种巧妙的方法来不使用装配体、但这是否意味着我们仍然必须显式使用装配体?

    此外、如果我们在上面的链接中的 CLA 中有该汇编代码、为什么不能将其编译到 driverlib 中? 将 driverlib 与 CLA 一起使用是否存在任何问题?

    黄维恩

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

    韦恩、

    让我在这个主题中循环使用 CLA 专家来评论 DriverLib API。

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

    您好、Wayne、

    CLA 没有与 C28类似的计时器/计数器。 因此、CLA 上不支持与 SYSCTRL_DELAY 类似的东西。 然而、CLA 软件开发指南提供了一个涉及使用 ePWM 来执行此操作的建议:

    https://software-dl.ti.com/C2000/docs/cla_software_dev_guide/faq.html#how-can-i-measure-the-duration-of-a-task

    希望这对您有所帮助。

    谢谢、

    Ashwini