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:如何配置 LGPTimer DIO

Guru**** 2546490 points
Other Parts Discussed in Thread: CC2340R5, SYSCONFIG, CC2430

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1234744/cc2340r5-how-to-configure-lgptimer-dio

器件型号:CC2340R5
主题中讨论的其他器件: SysConfigCC2430

您好  

我正在开发 CC2340R5。  我的项目需要计时器应用程序。  

我无法在 SysConfig 中为计时器引脚配置 DIO。  

任何人可以帮助我配置 DIO。 此外、如何使该 DIO 引脚成为输入。  

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

    尊敬的 Krishna:

    我假设您在引用 LGPTimerLPF3.h 文件参考 示例?

    LGPTimerLPF3_Handle hTimer;
    void timerCallback(LGPTimerLPF3_Handle lgptHandle, LGPTimerLPF3_IntMask interruptMask) {
        // interrupt callback code goes here. Minimize processing in interrupt.
    }
    void taskFxn(uintptr_t a0, uintptr_t a1) {
      uint32_t counterTarget;
      lgptHandle = NULL;
      LGPTimerLPF3_Params params;
      LGPTimerLPF3_Params_init(&params);
      params.hwiCallbackFxn = timerCallback;
      lgptHandle = LGPTimerLPF3_open(0, &params);
      if(lgptHandle == NULL) {
        Log_error0("Failed to open LGPTimer");
        Task_exit();
      }
      counterTarget = 48000;  // 1 ms with a system clock of 48 MHz
      LGPTimerLPF3_setInitialCounterTarget(lgptHandle, counterTarget, true);
      LGPTimerLPF3_enableInterrupt(lgptHandle, LGPTimerLPF3_INT_TGT);
      LGPTimerLPF3_start(lgptHandle, LGPTimerLPF3_CTL_MODE_UP_PER);
      while(1) {
          vTaskSuspend(lgptHandle);
      }
    }

    该代码示例将使用 LGPTimer 每1ms 生成一个中断。  LGPTimer TI 驱动程序不映射到任何特定的 DIO 引脚。  您想通过 DIO 实现什么目标?  创建 PWM、切换计时器过期等、或进行其他操作、因为您希望 DIO 作为输入。

    此致、
    瑞安

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

    您好、Ryan  

    我的应用程序要求定时器 IO 作为计数器, IO 被设置为输入,每当引脚为高时,它应该计数. 我无法找到设置计时器模式和配置计时器的引脚多路复用器的位置。 有什么方法可以做到这一点吗?

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

    TI 驱动程序操作中尚未包含 LGPT 捕获功能。  这是一个已知的软件缺口、可以从下一个 SIMPLELINK-LOWPOWER-F3-SDK 版本中获得。

    此致、
    瑞安

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

    希望你明白,我不是在问 LGPT Capture . 我想要 LGPT 事件计数 。  

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

    我了解您的要求。

    此致、
    瑞安

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

    您好、Ryan  

    你知道我已经在计时器工作了一段时间。 我已经浏览过 TRM、并找到了 LGPT 的活动结构输入。 我可能会发现 GPIO 事件可以成为 LGPT 订阅者的来源之一。 但关于进一步的 GPIO 配置,没有提供用于此目的的 lgpt 配置。 为了更好地理解这一点,你能给我提供一些示例,其中我的要求是在 GPIO 事件中断中进行 lgpt 事件计数。

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

    在器件发布之后、我们持续密切开发 CC2430软件资源。  在使用下一个 SIMPLELINK-LOWPOWER-F3-SDK 版本更新 LGPT TI 驱动程序之前、无法提供示例。  这将包括 用于捕获和比较 可多路复用至每个 LGPT 外设实例的三个通道的 IO 信号的 API。 通道捕获功能可用于测量输入信号的周期和占空比。  但是、LGPT 驱动程序仍不支持来自事件结构的通道输入。  如果此调度与您的时间轴不相符、或者仍无法包含所需的功能、则您将必须从 LGPT 寄存器创建一个解决方案

    此致、
    瑞安

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

    您好、Ryan  

    我已经有一段时间了。 如此处下方的方框图所示、  

    LGPT 的输入时钟可由事件结构馈送。 我对于可以将 LGPT 配置为从事件结构时钟获取输入的哪个寄存器感到困惑。

    您能帮助我吗?  

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

    CnCFG (即 C0CFG、C1CFG、C2CFG)确定每个通道配置的通道输入是事件结构还是 IO 控制器。  以下是 CPU_MMAP 描述

    此致、
    瑞安

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

    谢谢、Ryan  

    我实际上是在从 LGPT 的 PRECFG 寄存器中寻找 TICKSRC 位来从事件结构访问时钟、而不是从系统时钟。

    而且,我有点卡在事件结构。 根据我的要求、我将配置  

    1) GPIO.EVTCFG、用于从特定 DIO 获取事件  

    2) EVTSVT.LGPTxTENSEL 将此事件结构重定向到 LGPT  

    3) LGPTx.PRECFG、用于获取事件结构的上升沿  

    我已经完成了上述所需的配置、并希望计数器每次都在 DIO 的引脚高电平上运行。 请多多指教。 即使是在 DIO-高电平多次之后、计数器每次都为0。 你是否有任何关于这一点的见解,这样我就可以正确地运行我的计时器计数器?  

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

    当然还有更多的 GPIO 和 LGPTx 寄存器必须进行配置、由于此应用程序的复杂性、我继续建议耐心等待 7月底发布的 SIMPLELINK-LOWPOWER-F3-SDK v7.20版本。

    此致、
    瑞安

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

    您好、Ryan  

    问题在于我在结束时犯了一个错误、我给出了一个较高的预分频值。 在将其降低为0后、它运行得很好。  

    感谢您的关注。