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.

[参考译文] LP-****

Guru**** 2425370 points
Other Parts Discussed in Thread: MSPM0G3507

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1538619/lp-

部件号:LP-**** >
Thread 中讨论的其他器件:MSPM0G3507

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

    > IF ((temp2 & DL_TIMER_IIDX_CC0_UP)== DL_TIMER_IIDX_CC0_UP)

    IIDX 是一个小整数、而不是位矢量[Ref TRM (SLAU846B) 表 27-38]。 具体而言、CCU0 为 0x09、CCD0 为 0x05。 这会意外地工作、因为(我想)您只启用了两个中断。 这应该是:

    IF (temp2 =DL_TIMER_IIDX_CC0_UP)

    -----

    >      DL_TimerG_clearInterruptStatus (TIMER_HALL_C_INST、DL_TIMER_IIDX_CC0_UP);

    该函数需要一个位矢量、而不是 IIDX 值[参考 TRM 表 27-56]、因此这会清除一些其他条件。 如果您想执行此操作、结果如下所示:

    >      DL_TimerG_clearInterruptStatus (TIMER_HALL_C_INST、DL_TIMER_INTERRUPT_CC0_UP_EVENT);

    但是、读取 IIDX 寄存器会自动清除中断条件、因此您根本不需要此行。

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

    您好 Bruce McKenney、

    不幸的是、问题仍然存在

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

    哪些事件是错误的? 他们错了什么方式?

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

    当它检测到上升沿的下降沿时、通常会混合边缘。

    识别所有边线

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

    在此代码中、我看不到任何识别上升沿与下降沿的内容。 通常、您需要将两个通道(一个通道用于上升,另一个通道用于下降)连接到单个引脚才能执行此操作。

    CCU/CCD 事件指示计数器的计数方向(此时)、而不是针边沿。

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

    你好、McKenney 先生、

    如何实现呢? 不幸的是,我还不是很适合它。

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

    (例如) “组合脉宽和周期时间“用例[TRM (SLAU846B) 第 27.2.3.1.2.4]节对此进行了介绍。 关键在于步骤 (6) 中设置 IFCTL:ISEL 以将两个计时器通道分配到同一输入引脚[参考 TRM 表 27-80];以及在步骤 (5) 中、其中两个通道的 CCCTL:CCOND 设置为 相反的(上升沿与下降沿)彼此相反[参考 TRM 表 27-73]。

    此处的示例“timx_timer_mode_capture_duty_and_period"对此“对此进行了说明:

    https://dev.ti.com/tirex/explore/node?node=A__ACdsrKl.4hX4Pw9rSp1lsA__MSPM0-SDK__a3PaaoK__LATEST

    计时器设置是使用合成的计时器“模式“(DL_TIMER_CAPTURED_END_MODE_PULSE_WIDTH_AND_PERIOD) 完成的、因此大多数设置都在 Driverlib 代码中。  

    [遗憾的是、论坛似乎已丢失您的原始帖子、因此我猜 您正在使用 MSPM0G3507(或类似器件)。]

    【编辑:更正了拼写错误。】

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

    您好 Bruce、

    非常感谢您的帮助。 我现在已经成功地做到了。