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.

[参考译文] LAUNCHXL-F28069M:LAUNCHXL-F28069M

Guru**** 2595935 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/675619/launchxl-f28069m-launchxl-f28069m

器件型号:LAUNCHXL-F28069M

您好! 我对这幅文字墙感到非常抱歉、但我们不是很了解这是如何工作的、我们真的可以使用一些帮助!

我和我的合作伙伴使用 eCAP 模块来检测物体与超声波传感器的距离。

其工作方式如下:

我们尝试按如下方式进行设置:

超声波传感器根据高数字信号与检测到的物体的距离(例如、)返回一段时间内的高数字信号 如果数字信号远离、则数字信号为高电平100微秒;如果物体靠近超声波传感器、则超声波传感器将在极短的时间内输出高数字尖峰(例如1微秒)。  
理想情况下、ID 类似于检测从超声传感器返回的信号的正边沿、并在一段时间内对其进行采样。 如果它很快变低、我知道超声波传感器附近有一个物体。 如果它保持高电平、我知道物体离得远。

我们只需要测量 t_pw。

我们已将 ECCTL1设置为:

ECap1Regs.ECCTL1.bit.FREE_SOFT = 1;      中断后//停止以进行调试

ECap1Regs.ECCTL1.bit.prescale = 0; //无校验器

ECap1Regs.ECCTL1.bit.CAPLDN = 1 //启用捕捉单元

ECap1Regs.ECCTL1.bit.CAP1POL = 1;//在下降边沿上开始计时
ECap1Regs.ECCTL1.bit.CAP2POL = 0;//上升沿返回值
ECap1Regs.ECCTL1.bit.CAP3POL = 1;//在下降边沿上开始计时
ECap1Regs.ECCTL1.bit.CAP4POL = 0;//在上升边沿上开始计时

ECap1Regs.ECCTL1.bit.CTRRST1 = 1;// 在检测到一个上升边沿后、复位定时器
ECap1Regs.ECCTL1.bit.CTRRST2 = 1;// 检测到下降沿后、返回值
ECap1Regs.ECCTL1.bit.CTRST3 = 1;// 这只是对 eCAP1的阴影,所以当我们复位 CTRRST1时不应该复位它?
ECap1Regs.ECCTL1.bit.CTRRST4 = 1;// 这只是对 eCAP2的阴影, 所以当我们复位 CTRRST2时不应该复位它?

//控制寄存器2

ECap1Regs.ECCTL2.bit.CONT_ONESHT = 0;//连续、因为我们要使定时器在第一个边沿(事件)之后保持运行?

ECap1Regs.ECCTL2.bit.STOP_Wrap = 3;// 我们 只想知道上升事件和下降事件之间的差异,所以这无关紧要?

ECap1Regs.ECCTL2.bit.SYNCI_EN = 1;//启用同步输入
ECap1Regs.ECCTL2.bit.SYNCO_SEL = 0;//直通

ECap1Regs.ECCTL2.bit.TSCTRSTOP = 1;//起始计数器
ECap1Regs.ECCTL2.bit.rearm = 1;// ARM 单次触发

ECap1Regs.ECCTL2.bit.TSCTRSTOP = 0;     //确保计数器已停止

ECap1Regs.ECEINT.BIT.CEVT4 = 1;        // 2个事件(上升然后下降)=中断,然后我们得到值

_________________________________

这有道理吗?  

_________________________________

另外、还有几个简短的问题!

我们有5个超声波传感器、每个传感器只需1个引脚。 查看示例代码、我认为我们有足够的引脚、这是正确的吗?

最后、返回的值是否表示脉宽内计数的周期数? 定时器的值返回到哪个寄存器?

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

    尊敬的 Andrew:

    您正在走正确的道路。 ECAP 的目的是测量脉冲持续时间。 在您的案例中、"开始计时"和"完成计时和返回"将分别在上升沿和下降沿发生2个事件。 您可以将其配置为绝对模式、并自行在2个时间戳之间执行减法以计算脉冲持续时间、也可以将其配置为增量模式并让其执行减法。

    是的、您应该能够执行全部5个超声波传感器。 时间戳进入 CAP1-4寄存器。

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

    Andrew、

    您似乎已经在这篇文章中与 Cody 和 Tommy 进行了相同的讨论-> e2e.ti.com/.../2488681

    我将继续、关闭这个。