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.

[参考译文] LAUNCHXL-F28027F:如何使用 GUI Composer 控制(启动和停止) PWM 信号

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/989444/launchxl-f28027f-how-to-control-start-and-stop-a-pwm-signal-using-gui-composer

器件型号:LAUNCHXL-F28027F

您好!

我已经在 CCS 中对2个 PWM 信号进行了编程、所有信号都在独立模式下运行良好、

请参阅下面的主程序摘录

   void main (void)
   {
    initSystem();

    CLK_enablePwmClock (myClk、PWM_NUMBER_1);//启用 LA 时钟 du PWM1
    CLK_enablePwmClock (myClk、PWM_NUMBER_2);//启用 LA 时钟 du PWM2

    initEPWM (myPWM1);
    initEPWM (myPWM2);

   }// main 结束

现在、我想通过 IHM =>构建 GUI Composer 界面中的切换按钮来控制 PWM 信号的开始和停止、使用变量"GO"来绑定切换按钮和程序。

Herafter 是我的主要程序的一个摘录、用于执行该操作、但它不起作用。

  for (;;)
  {
    start=*(GO);

    如果(*(&Start)!=0)
    {
      VISU_GO=1;
  
      CLK_enablePwmClock (myClk、PWM_NUMBER_1);
      CLK_enablePwmClock (myClk、PWM_NUMBER_2);
      initEPWM (myPWM1);
      initEPWM (myPWM2);
    }

    其他
    {
      VISU_GO=0;
      clk_disablePwmClock (myClk、PWM_NUMBER_1);
      clk_disablePwmClock (myClk、PWM_NUMBER_2);
    }
  }

有没有人有这种基本应用的示例?

非常感谢您的支持。

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

    您好 Bruno、
    如何将 GO 变量绑定到切换按钮? 是否将其绑定到切换按钮小工具的已检查属性? GO 必须是目标程序中的全局变量。

    如果您使用 CCS 开发代码、请尝试在 CCS 中运行程序、并在目标运行时更新 GO 变量。 在 GUI Composer 中使用目标程序之前、请确保执行此操作。

    此致、
    Patrick

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

    尊敬的 Patrick:

    感谢您的反馈、

    我的"Go"变量已在切换按钮和软件变量之间很好地绑定;我可以进行检查,因为我同时激活了一个"GUI LED"。

    这不是一个具有约束力的问题。

    我的问题是由于无限循环(for (;;)与 PWM 输出的独立工作之间不兼容。

    此致。

    布鲁诺

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

    您好、Bruno、

    我知道、当按下切换开关一次时、将生成 PWM 信号、而当再次按下开关时、将停止信号。

    我建议引入另一个变量、用于存储 PWM 的先前状态。 每次按下切换开关时、读取之前的状态、决定是需要启用 PWM 还是禁用 PWM 并更新状态。 这将确保 ENABLE PWM 仅在禁用前一状态时工作、反之亦然。

    此外,每次需要生成 PWM 信号时都不需要初始化 PWM,因此初始化 PWM 部件可以保持在无限循环之外,除非您要重置 disablePWMClock()中的每个已初始化位。

    我的结尾有一个问题:为什么需要编写 Start =*(&go)和*(&Start)而不是直接使用-> Start = Go?

    谢谢、

    Aditya

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

    您好、Aditya、

    非常感谢您的友好回复和建议。 很抱歉、我的反馈很晚(我忙于其他主题)。

    我尝试了你所说的内容、实际上、这是一个在正确的时间要求正确的变量的问题。 现在它起作用了。

    关于你的问题,没有任何理由,这只是许多其他尝试中的一种尝试。

    再次感谢。

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

    您好、Bruno、

    很高兴这个问题得到解决。 感谢您的回复。

    此致、

    Aditya