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.

[参考译文] CCS/TMS570LS3137:TMS570LS3137

Guru**** 2607995 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/754280/ccs-tms570ls3137-tms570ls3137

器件型号:TMS570LS3137

工具/软件:Code Composer Studio

我想使用函数"pwmGetSignal()"来获取给定 PWM 信号的当前占空比和周期、该程序如下所示:

我通过 CAN 消息监控该值。 但我没有得到所需的结果。 (在最后三个字节中、正确的结果应为0x32/0xe8/0x03)。 给定的占空比为50% 、周期为1000us。

我不知道原因是什么。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Shushua、
    您是否检查了 TX_data1[5]、TX_data1[6]和 TX_data1[7]的值? 请尝试:
    hetSIGNAL_t TX_SIGNAL;

    pwmGetSignal (hetRAM1、2、&TX_SIGNAL);

    此致、
    米罗
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    TX_data1[5]、TX_data1[6]和 TX_data1[7]的值位于上图中:FD 00;

    这样、您会说"pwmGetSignal (hetRAM1、2、&TX_SIGNAL);"是不对的。 因为函数如下所示:
    void pwmGetSignal (hetRAMBASE_t * hetRAM、uint32 PWM、hetSIGNAL_t*信号)
    最后一个参数是指针。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我稍微修改一下您的代码、以便对其进行一般测试。

    以下是我的修改:

    hetSIGNAL_t 信号;

      hetSIGNAL_t TX_SIGNAL;

      uint32_t i=0;

      uint8_t TX_DATA[3];

      uint64_t UDATA = 0;

      hetInit();

      对于(i=0;i=5000000;++I);

      信号占空比= 10;

      SIGNAL.PERIOD = 1000;

      pwmSetSignal (hetRAM1、pwm0、SIGNAL);

      pwmGetSignal (hetRAM1、pwm0、&TX_SIGNAL);

      TX_DATA[0]=(uint8_t) TX_SIGNAL 占空比;

      UDATA =(uint64_t) TX_SIGNAL。PERIOD;

      TX_DATA[1]=(uint8_t) TX_SIGNAL 周期;

      TX_DATA[2]=(uint8_t)((((uint64_t) TX_SIGON.PERIOD)>> 8);

    和结果符合预期:

    此致、

    米罗

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