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.

[参考译文] TM4C1294NCPDT:TM4C1294NCPDT 一次性 PWM 超时中断

Guru**** 2609285 points
Other Parts Discussed in Thread: TM4C1294NCPDT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1175722/tm4c1294ncpdt-tm4c1294ncpdt-one-shot-pwm-timeout-interrupt

器件型号:TM4C1294NCPDT

我想问 TM4C1294NCPDT 在设置为单次触发 PWM 时是否可以触发超时中断。

我要做的流程如下:

输出单次触发 PWM。

2.  在超时时时使用新的加载和匹配值重新启动计时器。

如果计时器仅设置为单次触发计时器、则会触发超时中断、但如果我添加 PWM、则不会触发超时中断。

定时器配置如下:

TimerConfigure (Timer1_base、TIMER_CFG_SPLIT_PAGE|TIMER_CFG_A_ONE_SHOT_PWM);

IntMasterEnable();

TimerIntEnable (Timer1_base、timer_TINA_TIMEOUT);

IntEnable (INT_TIMER1A);

如果我使用 TIMER_CAP_EVENT 作为中断、捕获中断会正确进入中断例程、但由于边沿在计时器结束时不会改变、因此在该时间内不会进入。

任何建议都非常有用。

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

    您好、Christopher、

    当定时器配置为 PWM 模式时、中断只会基于边沿检测而不是超时发生。

    您应该使用 PWM 外设、该外设具有更多选项、包括基于计数为零或等于负载计数的中断。

    #define PWM_INT_CNT_ZERO 0x00000001 // int if count = 0
    #define PWM_INT_CNT_LOAD 0x00000002 // int if count = load

    TivaWare 示例 PWM_INTERRUPT 展示了如何更新每个中断的占空比。

    此致、

    Ralph Jacobi

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

    感谢您的回答。   

    我仍然必须尝试使用 PWM 外设、但我只是想验证一些东西。   如果我使用 PWM 外设、它是否具有单次触发模式?  我确实看到某种单次触发模式启用、但由于我仍然需要尝试、因此我不确定。

    下面是从数据表中获取的受攻击图像。

    此致、

    Christopher   

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

    您好、Christopher、

    与您的初始请求相比、我认为该器件没有您在此处所需的确切功能。

    PWM 外设不支持单次触发模式、这似乎是您端的主要要求

    但是、计时器模块实际上并不像您所看到的那样支持单次 PWM。

    我不确定您是否可以使用 PWM 中断来仿真单次触发 PWM、然后立即将其停止? 这是我们想到的第一个想法...

    此致、

    Ralph Jacobi