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.

[参考译文] CC2340R5:暂停时间短、具有用户睡眠功能(<1ms)

Guru**** 2589265 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1389192/cc2340r5-short-pause-with-usleep-function-1millisecond

器件型号:CC2340R5

工具与软件:

您好!

我想在输出端生成一个短脉冲(1ms)以复位外部外设。

我在输出关闭和 输出开启之间使用了 usleep (1000)命令。

不管用。

有什么想法吗?

谢谢。

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

    您好 Thierry、

    [报价 userid="614504" url="~/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1389192/cc2340r5-short-pause-with-usleep-function-1millisecond "]

    我在输出关闭和 输出开启之间使用了 usleep (1000)命令。

    不管用。

    [报价]

    您能否指定哪些选项完全不起作用?  您能否提供有关外部外设引脚的其他调试信息和逻辑分析仪/示波器屏幕截图?

    我修改了空代码以使用 usleep (1000);并获得以下结果

    当然、在用户睡眠功能中需要考虑延迟上限:

    xDelay =(usec + tick_period_USECS - 1)/ tick_period_USECS;

    这将变为 xDelay =(x + 1000 - 1)/ 1000、并且由于整数值的其余部分是悬空的、因此1000或更低的值将得到 xDelay 为1。  因此、睡眠时间少于1000 (1ms)的睡眠并不是最可靠的、但它仍然提供较短的2.8ms 延迟。

    如果此粒度是不可接受的、则可以尝试 driverlib cpudelay 或 DPL ClockP_usleep (在添加适当的#include 后、下面的示例中显示) )。

    此致、
    Ryan

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

    我在 usleep (1000)行上放置一个断点。 当我单击"Step Over"(单步执行)时、软件冻结。

    当我点击 Suspend 时,软件被阻止在这里:

    我尝试了  ClockP_usleep 函数、结果是相同的。

    请注意、我 在调用 vTaskStartScheduler 之前调用此函数"睡眠"。 是否该函数使用的时钟未运行?

    你有其他想法吗?

    感谢您的支持。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如需了解相关信息、我 在调用 vTaskStartScheduler 之前将此函数称为"sleep"。 可能该函数使用的时钟未运行[/报价]

    请在应用任务启动后在其内部应用您的代码。

    此致、
    Ryan