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.

IDDKv2_PM_Servo_F2837x_FCL_Example1的代码问题

Other Parts Discussed in Thread: CONTROLSUITE

 你好,

 

我正在阅读 controlsuite里面的程序IDDKv2_PM_Servo_F2837x_FCL_Example1 ,在FCL_IDDK_PM_Servo_F2837x.c程序里的注释第1232行和1238行分别表达如下:

1232行 :// ADC A EOC of SOC1 is used to trigger Motor Interrupt

1238 行:  //PWM11 INT is used to trigger Motor Control ISR

Motor Control ISR 我认为是指interrupt void MotorControlISR(void). 这个主中断程序;

Motor Interrupt这个是指的什么程序呢?不是很明白,猜测下只是CLA里面的某个任务么?

  • 1268 行代码:PieVectTable.EPWM1_INT = &MotorControlISR; 表示触发interrupt void MotorControlISR(void)中断的是EPWM1的相关事件而不是EPWM11,与1238行的注释相冲突了。如何解释?

    另外追加两个小个问题:

    1、cla如果进行设置中断或者_mdebugstop();进行单步调试的时候只能进入clatask一次么?不能重复的进入?

    2、_mdebugstop();这个函数是在单步使用调试时才使用么,如果以后连续运行,不需要进入cla程序进行查看和调试,还用注释掉这条语句么?

  • 这些在工程中只是用于测试但没有删掉的部分,具体您可以阅读以下解释:
    e2e.ti.com/.../676847
  • 另外追加两个小个问题:

    1、cla如果进行设置中断或者_mdebugstop();进行单步调试的时候只能进入clatask一次么?不能重复的进入?

    2、_mdebugstop();这个函数是在单步使用调试时才使用么,如果以后连续运行,不需要进入cla程序进行查看和调试,还用注释掉这条语句么?
  • 另外再追加3个小问题:
    1、CLA调试的时候,在2837XD中,如果我分别下载程序到CPU1和CPU2中,并不执行connect CLA ,如果工程文件中包含了.cla的协处理器的源代码,其实此时cla的内核是在全速运行的。
    2、接着上面的问题,如果执行connect cla操作,下载程序到CLA中进行.cla文件的调试,则只能执行一次cla的程序,就停止在了其代码的尾部} 大括号处。我的理解是否正确?
    3、电机控制的整个核心控制算法SVM都放在CLA中运行是否合理?