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.

[参考译文] TM4C1290NCPDT:CAN't 从 PWM 中获取第二个脉冲流

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1366438/tm4c1290ncpdt-can-t-get-second-pulse-stream-out-of-pwm

器件型号:TM4C1290NCPDT

工具与软件:

我正在尝试从 PWM0、GEN0和 Gen2获取两个相同的脉冲流。  我从 PF0的 GEN0得到脉冲、但从 PF2的 Gen2没有得到脉冲。

 GPIOPinTypePWM (GPIO_PORTF_BASE、0x01);

   GPIOPinConfigure (GPIO_PF0_M0PWM0);

   GPIOPinTypePWM (GPIO_PORTF_BASE、0x04);

   GPIOPinConfigure (GPIO_PF2_M0PWM2);

 

   PwMClockSet (PWM0_BASE、PWM_SYSCLK_DIV_16);                                 // 1250KHz 时钟。

   PWM 配置 (PWM0_BASE、PWM_GEN_0、PWM_GEN_MODE_DOWN  |                //

                                         PWM_GEN_MODE_NO_SYNC );              //

   PWMDeadBandDisable (禁用带宽) (PWM0_BASE、PWM_GEN_0);                                  //

   PWMGenPeriodSet (PWM0_BASE、PWM_GEN_01250);                               // 1KHz 输出。

   PWMPulseWidthSet (PWM0_BASE、PWM_GEN_0625);                               // 50%占空比。

   PWMOutputUpdateMode (PWMOutputUpdateMode) (PWM0_BASE、PWM_OUT_0_BIT、PWM_OUTPUT_MODE_SYNC_LOCAL); //在0计数下输出变化。

   PWM 使能 (PWM0_BASE、PWM_GEN_0);                                        //

   

   PWM 配置 (PWM0_BASE、PWM_GEN_2、PWM_GEN_MODE_DOWN  |                //

                                         PWM_GEN_MODE_NO_SYNC );              //

   PWMDeadBandDisable (禁用带宽) (PWM0_BASE、PWM_GEN_2);                                  //

   PWMGenPeriodSet (PWM0_BASE、PWM_GEN_21250);                               // 1KHz 输出。

   PWMPulseWidthSet (PWM0_BASE、PWM_GEN_2625);                               // 50%占空比。

   PWMOutputUpdateMode (PWMOutputUpdateMode) (PWM0_BASE、PWM_OUT_2_BIT、PWM_OUTPUT_MODE_SYNC_LOCAL); //在0计数下输出变化。

   PWM 使能 (PWM0_BASE、PWM_GEN_2);                                        //

 

   PWMOutputState (PWM0_BASE、PWM_OUT_0_BIT | PWM_OUT_2_BIT、 正确 );           //打开 PWM 输出。

谢谢、Doug

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

    尊敬的 Doug:

     如果要将 PF0和 PF2用于 PWM 引脚、则需要按如下方式配置。

      GPIOPinTypePWM (GPIO_PORTF_BASE、GPIO_PIN_0 | GPIO_PIN_2 );

     目前的做法是、先启用 PF0、然后启用 PF2、但禁用 PF0进行 PWM 控制。  

    GPIOPinTypePWM (GPIO_PORTF_BASE、0x01);//仅启用 PF0

        GPIOPinConfigure (GPIO_PF0_M0PWM0);

        GPIOPinTypePWM (GPIO_PORTF_BASE、0x04);// 仅启用 PF2、除非您写入0x5、其中 PF0和 PF2均由 PWM 模块控制。  

        GPIOPinConfigure (GPIO_PF2_M0PWM2);

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

    尊敬的 Charles:

    没有、没有解决。  实际上、即使我是如何初始化 PF0上的端口 M0PWM0也仍然起作用。

    谢谢、Doug

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

    尊敬的 Doug:

     如果您使用 GEN0注释掉与 PF0相关的所有代码、这会有什么不同?  我们只关注 PF2。  

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

    仍然没有输出脉冲流。

        GPIOPinTypePWM (GPIO_PORTF_BASE、0x04);

       GPIOPinConfigure (GPIO_PF2_M0PWM2);

       PwMClockSet (PWM0_BASE、PWM_SYSCLK_DIV_16);

       PWM 配置 (PWM0_BASE、PWM_GEN_2、PWM_GEN_MODE_DOWN  |

                                             PWM_GEN_MODE_NO_SYNC );

       PWMDeadBandDisable (禁用带宽) (PWM0_BASE、PWM_GEN_2);

       PWMGenPeriodSet (PWM0_BASE、PWM_GEN_21250);

       PWMPulseWidthSet (PWM0_BASE、PWM_GEN_2625);

       PWMOutputUpdateMode (PWMOutputUpdateMode) (PWM0_BASE、PWM_OUT_2_BIT、PWM_OUTPUT_MODE_SYNC_LOCAL);

       PWM 使能 (PWM0_BASE、PWM_GEN_2);

    谢谢、Doug

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

    尊敬的 Doug:

     输出 PWM2的 PF2引脚由 PWM_GEN_1控制、而不是我在代码中看到的 PWM_GEN_2控制。  

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

    再次感谢 Charles、我误解了 PWM 的结构。

    道格