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/TM4C129ENCPDT:TM4C129ENCPDT PWM

Guru**** 2439710 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/625003/rtos-tm4c129encpdt-tm4c129encpdt-pwm

器件型号:TM4C129ENCPDT

工具/软件:TI-RTOS

 我们使用 CCS 7.2.13和电路板 TM4C129ENCPDT。

是否可以同时配置两个具有不同周期的 PWM?

uint16_t pwmPeriod0 = 3000;
uint16_t pwmPeriod1 = 10000;

PWM_PARAMS_INIT (params);
params.period = pwmPeriod0
pwm0 = PWM_OPEN (Board_PWM0、params);

params.period = pwmPeriod1
pwm1 = PWM_OPEN (Board_PWM1、params);

while (1){
PWM_setDuty (pwm0、duty0); duty0=(duty0+ dutyInc);

PWM_setDuty (pwm1、duty1);duty1=(duty1+ dutyInc);

Task_sleep ((UINT) arg0);

谢谢、Sabina

 

 

 

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

    您好、Sabina、

    您似乎希望使用两个独立的 PWM 通道发生器、对吗? 如果是、就输出而言、这应该不是问题。 "配置"不会同时进行、但输出将是同步的。

    如果您在这方面遇到问题、请进一步详细说明您正在/未看到的内容(只有一个通道处于活动状态、两个通道均未处于活动状态等)、如果您成功地运行了一个通道、并且它正在尝试添加导致您出现问题的第二个通道。

    9月14日编辑,澄清 CB1在以下讨论中提出的要点。

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

    我可以恭敬地不同意吗?   请注意海报的请求:

    [引用 user="Sabina Greenberg101872"]是否可以同时配置两个具有不同周期的 PWM

    对我来说-她对"同步"配置的渴望无法实现!    查看海报的代码显示(正常)"顺序"代码执行-不会注册为"同步!"  

    现在、"这是什么意思"是、"能否实现(实现)两个 PWM 通道-每个通道的运行@不同的周期?"   答案是""-但有一个条件、就是这些通道不包含在(相同) PWM 发生器中!   (具有任何 PWM 发生器的2个通道必须"共享"它们的周期-但(可以)运行@不同的占空比)

    海报经常(经常)提出请求-但却没有证明其动机是正确的。   海报中的"同时"一词会使答案更准确-我认为这是"错过了!"  (因此、授予"验证"证明对未来读者"具有误导性-应该补救...)    同样、一个不能(同时)配置两个 PWM 通道!   未说明的是、"为什么这种(低)配置"对齐"-(有)感兴趣?"

    请注意、海报已向自己授予"验证"、这也是"验证答案!"的"意图之外"。   如果我们要遵守海报的写作要求-这里只有一篇文章值得"验证"。

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

    这是否意味着我们无法同时配置两个或更多具有不同周期的不同 PWM?

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

    [引用 user="Sabina Greenberg101872"]这是否意味着我们无法同时配置两个或更多具有不同周期的不同 PWM?

    这取决于您对"同时!"的定义   您展示的代码(或任何人都可能创建的代码)按顺序执行、因此每个 PWM 发生器的配置之间会有延迟(无论多么微小)!    (是因为每个 PWM 发生器都基于不同的 PWM 寄存器-一次只能访问一个这样的寄存器!)

    正如我之前的帖子(此处只有一个未经验证)所述-"您可以实现两个不同的 PWM 输出"-每个输出都具有唯一的周期(即、如果需要、不同的周期)!   同样、您必须使用两个不同的 PWM 发生器来实现这一点。  (我相信您的 MCU 在每个 PWM 模块中都有四个 PWM 发生器。   (您可能有两个这样的模块)

    请注意、一旦配置并启用两个 PWM 通道、将输出相同或不同周期的信号、前提是您已经选择并启用了两个不同 PWM 发生器的 PWM 输出。  (即 PWM0、PWM1、PWM2、PWM3)  来自同一 PWM 发生器的 PWM 输出(例如 PWM0)将始终共享相同的周期!  这现在是否清晰?

    为什么"同步配置"(不是输出)对您很重要?  我们可以接受同步输出-但不能接受同步配置。  (这一点(不包含解释)没有什么意义...)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的意思是两个或多个 PWM 的同时输出(PWM0为3000Hz、PWM1为400Hz、...)、不是同时配置、很抱歉让人困惑...
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="Sabina Greenberg101872"]我是指两个或更多 PWM 的同步输出(PWM0为3000Hz、PWM1为400Hz ...)[/quot]

    这就是我的想法!   (正如我两次写的-感谢您(现在)确认。)

    和-对于您提供的特定示例(即 PWM0和 PWM1)、答案仍然为否!   同样、正如我已经详细介绍过(现在已经多次) PWM0和 PWM1 "来自同一个 PWM 发生器"、它们不是吗?   因此、它们的周期是"锁定在一起"的、但它们的占空比可以单独控制...

    请注意、每个 PWM 发生器控制两个 PWM 输出。  您必须选择两个不同的 PWM 发生器-每个发生器有一个输出-这将为每个 PWM 输出启用"独立周期"!   即使在两个 PWM 输出"同时"运行时、尤其是在这种情况下!

    不同的 PWM 发生器被正确识别为:"PWM_Gen_0、PWM_Gen_1、 PWM_Gen_2、 PWM_Gen_3"。   PWM_Gen_0控制:"PWM_OUT_0和 PWM_OUT_1";同样、PWM_Gen_1控制:"PWM_OUT_2和 PWM_OUT_3 -等等!   因此、为了实现两个不同周期的 PWM 输出-必须配置并启用两个不同的 PWM 发生器、然后才能输出!   

    您现在是否可以将正确的验证授予正确回答您的请求的(唯一)帖子?  (所有正确的都是"未经验证"的-每个错误的都是"授予"的-因此不正确...)

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

    感谢您-第一份回答海报使用了"两个单独的 PWM 通道"、但"PWM 通道"并未完全/充分地描述 PWM 发生器与其两个链接的输出通道之间相当复杂的关系。

    您所尝试的(实现2个 PWM 输出@不同的频率/周期)只有当不同 PWM 发生器(非 PWM 通道)的 PWM 输出配置、启用并命令输出... 很高兴您坚持并成功了!

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

    我稍微编辑了我的原始帖子、以避免在其他人也陷入此主题时出现误导性的措辞。 感谢您帮助消除这些差异。