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/TMS320F28377S:示例"eQEP_pos_speed_cpu01"n't 不能正常工作

Guru**** 2609515 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/686751/ccs-tms320f28377s-example-eqep_pos_speed_cpu01-doesn-t-work-properly

器件型号:TMS320F28377S
主题中讨论的其他器件:C2000WARE

工具/软件:Code Composer Studio

你(们)好

我想询问以下示例:"eQEP_pos_speed_cpu01"。 我已从 C2000Ware_1_00_01_00导入 、并且仅将 PWM1更改为 PWM2、因为我正在使用 Launchpad F28377S。

我已经像在示例说明中那样连接了所有内容、但似乎不会发生中断、数据 theta_raw 为 NULL。

该方案如下:

#include "F28x_Project.h"
#include "example_posspeed.h"

POSSPEED QEP_POSTEED=POSSPEED_DEFAULTS;
UINT16 Interrupt_Count = 0;

void initEpwm();
_interrupt void prdTick (void);

void main (void)

  InitSysCtrl();
  InitEQep1Gpio();
  InitEPwm2Gpio();  
  EALLOW;
  GpioCtrlRegs.GPADIR.bit.GPIO4=1;
  GpioDataRegs.GPACLEAR.bit.GPIO4=1;  
  EDIS;

  Dint;

  InitPieCtrl();

  IER = 0x0000;
  IFR = 0x0000;

  InitPieVectTable();
  EALLOW;
  PieVectTable.EPWM2_INT=&prdTick;
  EDIS;    
  initEpwm();  
  IER |= M_INT3;

  PieCtrlRegs.PIEIER3.bit.INTx1 = 1;

  EINT;  //启用全局_中断 INTM
  ERTM;  //启用全局实时__interrupt DBGM

  qep_posspeed.init(&qep_posspeed);

for (;;)
  {

  }


_interrupt void prdTick (void)

   uint16 i;
  qep_posspeed.calc(&qep_posspeed);
  INTERRUPT_Count++;
  IF (Interrupt_Count=1000)
  {
      EALLOW;
      GpioDataRegs.GPASET.bit.GPIO4 = 1;//脉冲指数信号 (1个脉冲/修订版)
      (i=0;i<700;i++)
      {
      }
      GpioDataRegs.GPACLEAR.bit.GPIO4=1;
      INTERRUPT_COUNT = 0;              //复位计数
      EDIS;
  }
  PieCtrlRegs.PIEACX.ALL = PIEACK_Group3;
  EPwm2Regs.ETCLR.bit.INT=1;                     



example_EPwmSetup.c 配置为 EPWM2。

也许我错过了什么?

非常感谢你能抽出时间。
Tomasz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您似乎仍在启用 PieCtrlRegs.PIEIER3.bit.INTx1。 EPWM2是 INTx2。

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

    尊敬的惠特尼:

    感谢您的回答-现在它起作用了、但我很感激结果应该有所不同。

    下面是 QEP_posspeed.theta_mech 的结果。

    此致

    Tomasz

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在切换 PWM 之前、您是否获得了正确的结果?

    您是否检查了示波器上的 PWM 信号和 GPIO 切换、以确保它们都是在项目说明中注明的频率下发生的?

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

    您是对的-来自 PWM 的信号是随机的。

    感谢你的帮助

    Tomasz