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.

[参考译文] CC2531:使用计时器1查看命令需要多长时间并将其用作延迟

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/710587/cc2531-using-timer-1-to-see-how-long-a-command-takes-and-using-it-as-a-delay

器件型号:CC2531

大家好、

我已经设置好了计时器、我正在尝试将其用作延迟、并查看更改器件上的接收通道所需的时间。 在我更改信道后、我希望在该信道上保持30秒、然后再次切换信道。 我想使用计时器执行所有这些操作、但没有任何寄存器值对我可用。 如果有人能考虑到这一点,那将是非常感激的。 此外、如果有人有不同的方法来执行此操作、请告诉我。 非常感谢。

-Brandon

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

    要读取定时器1的当前计数、您可以读取寄存器 T1CNTH 和 T1CNTL。 这两个8位寄存器分别存储定时器计数的高字节和低字节。 计数1表示发生了一个时钟节拍。

    要测量需要多长时间才能存储 T1CNTL 和 T1CNTH 的值(必须始终先读取 T1CNTL)。

    以下是测量一段代码所需时间的步骤:

    1.在开始测量之前存储计数寄存器的值
    2.将计数寄存器的值存储在测量结束后
    3.计算这两个值的差值以获得通过的时钟节拍量

    时钟节拍的持续时间取决于您对计时器的配置。 假设时钟节拍为1ms、计算得出的差值为45。 然后1ms*45=45ms。

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

    要在特定的时间内执行某项操作、您可以在输出比较模式下使用计时器。 基本上、它所做的就是告诉您在定义的特定时钟周期通过后触发一个任务。 要了解有关定时器1的更多信息、我建议您转到 本文档的第9章。 第9.8节是我提到的模式。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、在您看来、您是否认为有更好的方法来处理延迟?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    JP、

    使用以下方法时

    COUNT1 = T1CNTL;
    FREQCTRL += 5;
    count2 = T1CNTH;
    差值= count2 - count1;
    printf ("低:%u、高:%u、差值:%u \n"、count1、count2、 差异);

    端子输出中的差值不会改变、但您可以清楚地看到 T1CNTL 和 T1CNTH 的差值、如下所示。

    低:0、高:65534、差:6082
    低:9、高:65438、差值:6082
    低:41、高:65374、差值:6082
    低:176、高:15、差值:6082
    低:41、高:65532、差:6082
    低:208、高:99、差值:6082
    低:105、高:75、差值:6082
    低:175、高:159、差值:6082
    低:157、高:150、差值:6082
    低:168、高:65493、差值:6082
    低:170、高:133、差:6082
    低:186、高:146、差:6082

    是否有关于如何解决此问题的建议?

    谢谢、
    Brandon