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.

[参考译文] RTOS/EK-TM4C129EXL:RTOS 中的 EK_TM4C129EXL PWM 中断

Guru**** 2455560 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/637413/rtos-ek-tm4c129exl-ek_tm4c129exl-pwm-interrupt-in-rtos

器件型号:EK-TM4C129EXL

工具/软件:TI-RTOS

尊敬的支持人员:

我想在 pwmled_EK_TM4C129EXL_TI 示例中添加 PWM 中断。

添加到 cfg 文件:

var m3Hwi0Params =的 m3Hwi.Params();
m3Hwi0Params.instance.name ="PWM_Generator_0"
m3Hwi0Params.priority = 0;
program.global.PWM_Generator_0 = m3Hwi.create (26、"&hwi0_ISR"、m3Hwi0Params);

在 pwmled.c 中添加了:

void hwi0_ISR (UArg 参数)
GPIO_toggle (Board_LED1);}

但当我添加时:

PWMIntEnable (PWM_base、PWM_GEN_0);-获取该错误  

PWM_base 和 PWM_GEN_0未定义、但它们存在 hw_memmap.h、其中包括:

#include "inc/hw_memmap.h"

请帮我解决这个问题。 这里的问题在哪里?

谢谢、Sabina

 

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

    是否有理由不使用支持 TI-RTOS 的 PWM 驱动程序? 我们有一个名为 pwmled 的示例。

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

    您好 Todd、

    我尝试在 PWMled 示例中添加 PWM 中断。

    它包含 #include

    请参见随附的

    /cfs-file/__key/communityserver-discussions-components-files/908/0312.pwmled.c

    /cfs-file/__key/communityserver-discussions-components-files/908/pwmledOutput.txt

    我们必须在用户应用程序中使用 PWM 中断(提高或降低)

    PWMGenConfigure (PWM_base、PWM_GEN_0、PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);

    谢谢、Sabina

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

    您好 Todd、

    您能帮我们解决这个问题吗? 在从这个特定的电路板开始新项目之前、我们必须检查我们应该使用的所有特性。

    其中一个特性是在 RTOS 环境中实现 PWM 中断。

    我们尽快需要它。

    谢谢、Sabina

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

    您好、Sabina、

    编译器提到的函数和符号在"driverlib/pwm.h"中定义。  您需要将该 include 添加到 C 文件中。  此外、PWM_base 不是有效的符号;我认为您要使用 PWM0_BASE。

    此致、

    伊曼纽尔

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

    您好、  Emmanuel、

    非常感谢! 我  遇到 PWM_BASE0问题、并使用 了#include  而不是#include 。 现在程序已成功构建、但我从未到达中断。 我的设置是:
     

    PWMGenConfigure (PWM0_BASE、PWM_GEN_0、PWM_GEN_MODE_DOWN | PWM_GEN_MODE_NO_SYNC);
    PWMGenPeriodSet (PWM0_BASE、PWM_GEN_0、400);
    PWMPulseWidthSet (PWM0_BASE、PWM_OUT_0、100);
    PWMIntEnable (PWM0_BASE、PWM_GEN_0);
    PWMGenIntTrigEnable (PWM0_BASE、PWM_GEN_0、PWM_INT_CNT_ZERO);
    PWMOutputState (PWM0_BASE、(PWM_OUT_0_BIT | PWM_OUT_1_BIT)、true);
    PWMGenEnable (PWM0_BASE、PWM_GEN_0);

    在配置文件中:

    var m3Hwi0Params =新的 m3Hwi.Params();
    m3Hwi0Params.instance.name ="m3Hwi0";
    program.global.m3Hwi0 = m3Hwi.create (26、"&hwi0_ISR"、m3Hwi0Params);


    从 pw.c 开始
    对于 PWM_GEN_0  INT_PWM0_0_TM4C129  = 26  

    我还设置了(不确定是否必须这么做)

    在 startup_ccs.c 中

      PWM0IntHandler、                         // PWM 发生器0

    我的设置有什么问题?

    谢谢、Sabina

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

    您可以帮助我们解决 PWM 中断问题吗? 没有它,我们就不能继续下去

    我看到 iISRStatus = PWMIntStatus (PWM0_BASE、false);返回1。 这意味着中断被启用。 但我没有到达它

    谢谢、Sabina

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

    您好、Sabina、

    很抱歉、我对此失去了追踪。  您是否仍然遇到问题?  我修改了一个示例项目、以便在计数器达到零时触发中断;它附加在这个帖子中。  如果仔细观察 ISR、它会每50个中断切换一次 LED;这相当于大约每秒闪烁3个 LED。

    查看您上面发布的代码,我认为问题是将错误的参数传递到 PWMIntEnable()中。  PWM_INT_GEN_0宏应作为参数提供(而不是 PWM_GEN_0);它应类似于:

    PWMGenIntTrigEnable (PWM0_BASE、PWM_GEN_0、PWM_INT_CNT_ZERO);
    PWMIntEnable (PWM0_BASE、PWM_INT_GEN_0); 

    从 PWMIntStatus (PWM0_BASE,false)返回1的原因是您正在读取原始中断寄存器并且 PWMGenIntTrigEnable()正常工作。  但是由于 PWMIntEnable()调用不正确,实际中断既不启用也不触发。

    此致、

    Emmanuele2e.ti.com/.../pwmled_5F00_interrupt_5F00_proj.zip

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

    非常感谢! 这是我的问题。 现在我获得 PWM 中断!

    谢谢、Sabina

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Sabina、
    很抱歉发布此消息、与您的技术问题无关、而是与论坛态度有关:您将您的"谢谢"消息标记为问题的解决方案、而是 Emmanuel 的帖子解决了问题。
    标记正确答案可帮助论坛更好地运作、还可让帮助您实现其应得积分的人员发挥作用。
    祝你一切顺利、
    布鲁诺
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    布鲁诺-确实。   您对"论坛正确性和/或秩序"的理解-以及对"走向这一目标"的渴望非常感激!  

    也许"指导语言"应该说,"这是解决线程问题的帖子"会减少海报的"错误点击自己的帖子"(发生太多),而不是有效地"解决"他们的问题的(适当的)帖子(特立尼达先生,在这里)。

    定义可能有助于: "解决"- 该帖子"解决或回答 "发布的问题或问题!    

    有时-多个帖子可能会对解决方案产生影响-因此、可能会有多个"已解决我的问题"帖子、"已单击"已解决。"

    此外-"原发海报-在其"感谢您发帖"的正文中-"复制/粘贴:"是否"证明有效"?

    • "解析开机自检"提供的用于"修复"问题的早期代码块
    • 描述/详细描述"非代码"方法的任何书面形式、同样、也是"修复"问题

    这似乎是一个"理解"的问题--需要更加明确----我们的职位(希望)已经提供了这一问题。    (也许-但本指南肯定会"轮流成为论坛的遗忘"-绝不会(很少)再次在这样的"无样论坛"中看到...)