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.

[参考译文] TMS320F28P650DK:HRCAP 配置

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1372739/tms320f28p650dk-hrcap-config

器件型号:TMS320F28P650DK
Thread 中讨论的其他器件:C2000WARE

工具与软件:

您好!

我想在我的项目中使用 HRCAP。 我看到了"example_2803x901" Cap_Capture_Pwm 示例项目、但我不知道如何将以下配置函数迁移到 f28p65x 目标:

空洞
HRCAP1_Config (void)

   EALLOW;
   HRCap1Regs.HCCTL.bit.SOFTRESET = 1;
   HRCap1Regs.HCCTL.bit.HCCAPCLKSEL = 1; // HCCAPCLK = PLLCLK = SYSCLK x 2
   
   //
   //启用上升沿捕获事件中断
   //
   HRCap1Regs.HCCTL.bit.RISEINTE = 1;     
   
   //
   //禁用下降沿捕获事件中断
   //
   HRCap1Regs.HCCTL.bit.FALLINTE = 0;
   
   //
   //在发生16位计数器溢出事件时禁用中断
   //
   HRCap1Regs.HCCTL.bit.OVFINTE = 0;
}

我在 f28p65x 数据表中看到可用的 HRCAP 通道是 eCAP6和 eCAP7、但我在 HRCap6Regs 中看不到相应的位。

提前感谢您的支持。

此致、

David

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

    在 API 网页文件中:///C/docs/html/modules//ti/c2000/C2000Ware_Motor 我只会看到校准寄存器 hrcap.html

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

    尊敬的 David:

    您是否已通过我们的 C2000WARE SDK 了解以下内容?

    C:\ti\c2000\C2000Ware_5_02_00_00\device_support\f28p65x\headers\include\f28p65x_ecap.h 和 C:\ti\c2000\C2000Ware_5_02_00_00\device_support\f28p65x\headers\source\f28p65x_globalvariabledefs.c?

    在全局变量定义中、您可以看到 HRCAP6和 HRCAP7存在。

    此致!

    Ryan Ma

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

    您好、Ryan、

    感谢您的答复。

    实际上、我已经在全局变量 defs 文件中找到了 HRCAP6和 HRCAP7、并查看了 C:\ti\c2000\C2000Ware_5_02_00_00\device_support\f28p65x\headers\include\f28p65x_ecap.h 文件、我的问题是我只在 HRCAP_REGS 结构中找到了校准寄存器:

    结构 HRCAP_REGS{
       联合  HRCTL_REG HRCTL                       ;                       //高分辨率控制寄存器
       uint16                                  rsvd1[2];                    //保留
       Union  HRINTEN_REG HRINTEN                     ;                     //高分辨率校准中断使能寄存器
       联合  HRFLG_REG HRFLG                       ;                       //高分辨率校准中断标志寄存器
       UNION  HRCLR_REG                       HRCLR;                       //高分辨率校准中断清除寄存器
       UNION  HRFRC_REG                       HRFRC;                       //高分辨率校准中断强制寄存器
       UINT32                                  HRCALPRD;                    //高分辨率校准周期寄存器
       UINT32                                  HRSYSCLKCTR;                 //高分辨率校准 SYSCLK 计数器寄存器
       UINT32                                  HRSYSCLKCAP;                 //高分辨率校准 SYSCLK 捕捉寄存器
       UINT32                                  HRCLKCTR;                    //高分辨率校准 HRCLK 计数器寄存器
       UINT32                                  HRCLKCAP;                    //高分辨率校准 HRCLK 捕捉寄存器
    };

    struct HRCTL_bits{                    // bits description
       UINT16 HRE:1;                      // 0高分辨率使能
       UINT16 HRCLKE:1;                   // 1高分辨率时钟使能
       UINT16 PRDSEL:1;                   // 2个校准周期匹配
       UINT16 CALIBSTART:1;               // 3 Calibration start (校准开始)
       UINT16 CALIBSTS:1;                 // 4 Calibration status
       UINT16 CALIBCONT:1;                // 5连续模式校准选择
       uint16 rsvd1:10;                   // 15:6保留
       uint16 rsvd2:16;                   // 31:16保留
    };

    联合体 HRCTL_REG{
       uint32 all;
       结构 HRCTL_BITS 位;
    };

    我需要找到 F2803x 的 f28p65x 等效值的位置、如下位:

     - SOFTRESET

     - HCCAPCLKSEL

     - RISEINTE

     - FALLINTE

     - OVFINTE

     - RISEOVF

    我在 C2000Ware 中没有找到 HRCap 或 ECAP 捕获的任何 f28p65x 示例。 你有一个例子要推荐吗?

    此致

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

    尊敬的 David:

    我需要对此进行研究、并在明天之前作出适当的反应。 为耽误您的时间而道歉。

    此致!

    Ryan Ma

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

    您好、Ryan、

    我昨天在 C:\ti\c2000\C2000 SDK_52_SDK_00\c2000ware\driverlib\f28p65x\examples\c28x\ecap 中找到了 ecap_ex2_capture_pwm Ware_Motor 示例工程

    我从它恢复过来,调整它以适应我的项目,现在它运行良好。