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.

[参考译文] CC2652R7:如何设置 GPTimer 以处理边沿捕捉。

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1281851/cc2652r7-how-to-setup-gptimer-for-handing-an-edge-capture

器件型号:CC2652R7

您好!

我正在尝试设置边沿时间捕获、并将其绑定到电路板上的引脚22、同时在相邻的引脚27上创建脉冲(跳接两个连接器)。 我使用的是 SDK 7_10_01_24、以下是我的代码。 每次我尝试将其设置为边沿时间计数时、它似乎都没有越过 DEBUG E 语句。 即使设置正确、在边沿时间也找不到任何文档。  不过、我确实使它在周期模式下工作。  

printf ("[GPTMR]计时器调试 a\r\n");
GPIO_setMux (22、IOC_PORT_MCU_PORT_EVENT2);
printf ("[GPTMR]计时器调试 B\r\n");
GPTimerCC26XX_Handle hTimer;
GPTimerCC26XX_PARAMS 参数;
GPTimerCC26XX_PARAMS_init (&params);
params.width = GPT_CONFIG_32位;
params.mode = GPT_MODE_EDGE_TIME;
params.direction = GPTMERCC26XX_DIRECTION_UP;
params.debugStallMode = GPTMERCC26XX_DEBUG_STALL_OFF;
hTimer = GPTMERCC26XX_OPEN (CONFIG_GPTIME_2、&params);
if (hTimer == NULL)
printf ("0");
printf ("[GPTMR]计时器调试 C:\r\n");

ClockP_FreqHz clockFreq;
ClockP_getCpuFreq (&clockFreq);
uint32_t period = 500000;
GPTimerCC26XX_VALUE loadVal =周期*(clockFreq.lo / 1000000);

printf ("[GPTMR]计时器调试 D\r\n ");

//GPTimerCC26XX_setLoadValue (hTimer、loadVal);
printf ("[GPTMR]计时器调试 E\r\n ");
GPTimerCC26XX_registerInterrupt (hTimer、timerCallback、GPT_INT_CAPTURE);
printf ("[GPTMR]计时器调试 F\r\n ");
GPTimerCC26XX_setCaptureEdge (hTimer、GPTimerCC26XX_POS_EDGE);

printf ("[GPTMR]计时器调试 G\r\n ");
GPTMERCC26XX_START (hTimer);
printf ("[GPTMR]计时器调试 H\r\n");

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

    您好、Kenneth Thomas:

    关于边沿检测的一些示例代码、我在 E2E 表单上找到了一些良好的参考/代码、可以在 这篇 E2E 文章中找到。 这篇文章对如何使用 GPTimer 进行边沿捕获进行了一些讨论、但是、请注意、代码/帖子是关于我们的低于1GHz 器件、而不是2.4GHz、因此可能需要稍作修改。 如果需要、还可以参考 GPTimerCC26XX.h。  

    谢谢。
    A·F  

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

    尊敬的 Alex:  

    感谢你的帮助。 事实证明、我只需要将宽度从32位更改为16位。