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.

[参考译文] TMDSHVMTRPFCKIT:ECAP 速度测量、

Guru**** 2589280 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/791050/tmdshvmtrpfckit-ecap-speed-measurement

器件型号:TMDSHVMTRPFCKIT

尊敬的 TI 您好、

我正在尝试使用 eCAP 模块计算两个上升沿之间的超时、

我想使用 eCAP 测量速度、

我使用的是 f2803xcap.h、

/*============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
文件名: F2803XCAP.H
目标:F2803x 系列
==================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== */

#ifndef __F280x_CAP_H__
#define __F280x_CAP_H__

#include "f2803xbmsk.h"
#include "f2803xdrvlib.h"

/*---
ECAP1的 ECAP 控制寄存器1和2的初始化状态
--------------------------------------------------------------- */
#define ECCTL1_INIT_STATE (CAP1POL_RISTING _EDGE +\
CAPLDEN_ENABLE +\
CTRST1_Difference _TS +\
EVTFLTPS_X_1 +\
emulation_free)

#define ECCTL2_init_State (continuous_mode +\
TSCNTSTP_FREE +\
SYNCI_DISABLE +\
SYNCO_DISABLE +\
捕获模式)

/*------------------
定义捕捉驱动程序对象的结构-------------------------------------------------------
//
typedef struct{Int32 EventPeriod;//输出:检测到的两个边沿之间的计时器值差异(Q0)
uint16 CapReturn;
} 捕捉;

/*-----------------
F280x 捕获对象的默认初始化程序
------------------------------------------------------- */
#define F280XCAP1 {1、0\
}

/*------------------
目标独立的默认初始化程序捕获对象-------------------------------------------------------
*/
#define CAPTURE_DEFAULTS F280XCAP1

/*-------------------------------------------------------
CAP_INIT 和 CAP 宏定义-------------------------------------------------------
*

#define CAP_INIT_MACRO (n)\
/* Init ECAP Control Register 1 and 2 for ECAP1*/\
(* eCAP[n]).ECCTL1.ALL = ECCTL1_INIT_STATE;\
(* eCAP[n]).ECCTL2.ALL = ECCTL2_INIT_STATE;\


//确保 GPIO 配置在...-DevInit_F2803x.c 文件中正确完成,如下所示\\
EALLOW; /*启用 EALLOW */\
/*将 ECAP1引脚设置为主要功能*/\
GpioCtrlRegs.GPAMUX2.bit.GPIO24=1;// GPIO24为 ECAP1 */\
EDIS; /*禁用 EALLOW*/



#define CAP_MACRO (n、v)\
if ((* eCAP[n]).ECFlG.bit.CEVT1!= 0)/*检查 ECAP1引脚第一个事件的一个入口状态*/\
{\
V.EventPeriod =(* eCAP[n]).CAP1;/*标记检测到的两个边沿之间的定时器计数器差异*/\
V.CapReturn=0; /*然后,返回零*/\
}\
否则\
{\
V.CapReturn=1; /*否则,返回一个*/\
}


#endif //__F280x_CAP_H__

在此代码行中:

V.EventPeriod =(* eCAP[n]).CAP1;/*标记检测到的两个边沿之间的定时器计数器差异*/\ 

ECAP 应返回周期、这意味着两个上升沿之间的超时、

可以有人帮助我配置 eCAP、以便它可以使用两个上升沿吗?

此致、

S.Tarik、

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

    请参阅此 e2e 查询 :e2e.ti.com/.../605438

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

    谢谢、
    问题是来自激光传感器的峰峰值电压(3.3V)。 我使用的是激光传感器而不是霍尔传感器、
    TBX0106集成电路 B4引脚中的输入电压必须高于3.3V。
    因此、我通过使用另一个 GPIO 引脚绕过了这个集成电路、该引脚我连接到 eCAP。

    此致、

    S.Tarik