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:CCS漏洞?

Guru**** 2540720 points
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/616003/ccs-the-ccs-bug

主题中讨论的其他部件:controlSUITEC2000WARE

工具/软件:Code Composer Studio

 大家好!

     我想使用tms2.8335万 来限制 23kHz 的频率,但 程序无法 进入中断。  

     然后,我 将CAP 代码与 我的项目和 步进分开, 我发现 程序工作正常,但 ecap5的寄存器 始终为零。

     我不知道为什么?  

    e2e.ti.com/.../CAP-test.zip  帮助我!

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

    是,时钟已启用。

       EALLOW;
       SysCtrlRegs.PCLKCR1.bit.ECAP5ENCLK=1;
       EDIS;
      该项目载于附件。

       问题: 代码不能更改ecap5的寄存器(值全部为'0')。

      我将有关ECAP的代码放在其他项目中,并 正常工作。 eCAP5寄存器的值  是正确的。

     我不知道项目中发生了什么,请帮助我。

     谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为另一个项目在同一个设备上运行良好,这意味着我们可以排除坏设备。 如果模块的所有寄存器/位都是“0”,则问题几乎总是时钟未启用。 启用时钟后,是否有后续代码关闭时钟? 您是否通过CCS (监视表达式或内存窗口)验证了ECAP5ENCLK位的值? 您是否能够通过CSS将值直接手动写入到登记簿中(即不使用代码)? 请将此代码与运行良好的代码进行比较,并在此处确定您的不同之处。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的帮助!

             我通过CCS验证了ECAP5ENCLK位的值。

             

               PCLKR1的值表示 ECAP5ENCLK位 为'1'。

           在issuse项目中,ecap5寄存器的值:

     然后,我通过CSS将值直接手动写入寄存器。

    但是,它不能进入cap5 interrugut。 另一个项目可以工作。

    但是,计数器(CAP1\CAP2\CAP3\CAP4)始终为'0' 。

    我不 知道为什么?

    此致!

    克莱克

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

    由于另一个项目工作正常,因此这里显然没有硬件问题。 如前面所建议,请比较这两个代码以确定导致问题的原因。 controlSUITE/c2000ware示例也是一个很好的参考来源。

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

    您好,Hareesh

            感谢您的帮助。

             优秀的项目是controlSUITE示例。区别在于  代码已从坏项目中更改。

           代码 相同。          

            CMD也是一样的,所以我找不到两个项目之间的区别。

           您能否查看我的CAP测试项目?

            谢谢!

          此致!

    克莱克

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

    您是否查看过您对eCAP的输入信号? 看起来盖子没有检测到任何上升边缘。

    仅需确认一下,是否只有CAP1-4寄存器0? 还是所有eCAP寄存器都为0?

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

    你好,Kris

       感谢您的帮助!

        1. 我已经查看了eCAP的输入信号,上升边缘和 后边缘都很好, 我已经检查过了。

        2. 我创建了两个项目;

       3.第一个项目是 所有eCAP寄存器 都是0,项目是 附加项目(CAP测试);

       4.将seccond项目从controlSUITE (示例_2833xECap_Capture_PWM)更改为CAP5的控制寄存器 ,  PC 可以在 断点处运行 (cap5的ISR),但 CAP1-4寄存器为0, 代码与第一个项目相同。  在ISR中,我 使GPIO29在0和1之间切换。 在示波器上,GPIO29的波是 正确的。

        我不知道为什么?

      再次感谢!

    克莱克