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.

[参考译文] TDC1000-TDC7200EVM:如何创建每30秒触发一次读取的固件?

Guru**** 2578945 points


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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/641178/tdc1000-tdc7200evm-how-to-create-a-firmware-that-triggers-a-reading-every-30-secs

器件型号:TDC1000-TDC7200EVM

大家好:

我们将 TDC1000-TDC7200EVM 与 Arduino 配合使用 、将超声波读数发送到远程端

连接很简单: TDC1000-TDC7200EVM 板的 UART 引脚连接到 Arduino Mega 上的串行引脚、Arduino 收到的每个信息 都使用无线模块发送。

如果 我将 TDC1000-TDC7200EVM 连接到计算机、我可以这样做、但是每当我断开电路板时、它都会停止读取和发送信息。 我需要它、因为我想将其安装在某个管道上进行测试。

我尝试修改 了 TDC1000-TDC7200EVM 板附带的固件、但结果不是很好。

我所做的是利用 main.c 中使用的 bext_trigger_time int

NEW_TRIGGER_TIME = 0;
while (1)
{
//_bis_SR_register (LPM0_bits + GIE); //输入 LPM0,启用中断
__no_operation(); //用于调试器
USBCommunicationTask();
IF (NEW_TRIGGER_TIME)
{
NEW_TRIGGER_TIME = 0;
IF (TDC1000_MSP430Timer_TDC)
MSP430Timer_TDC_TRIGGER_measure ();
其他
TDC_TRIGGER_measure();
__no_operation(); //对于调试器
}
}

我意识 到定时器 Timer1具有设置该值的中断服务例程(timer_queue.c、第240行)。 因此、我决定检查硬件计时器是否初始化。 此行将出现在初始化代码中:

TA1CCR0 = INTERVAL_100ms;  

我是否可以将该值更改为我希望超声波每30秒触发一次测量的秒数? 为此、我还将 Continuous_trigger_state 变量设置为1。

我遇到的问题是、如果我断开 USB 连接、则不会在之后执行触发。

我应该做的任何其他更改才能使其正常工作?

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

    我必须仔细研究这个问题、然后再返回给您。

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

    这应该起作用。 我会尝试删除 USBCommunicationTask 函数调用。 如果根据函数定义断开 USB 连接、它不应停止任何操作、但您可以将其注释掉、以确保正常。

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

    您好、Scott、

    我保留了该值、以便在需要时重新连接电路板。

    我在您的回复中没有看到任何代码、因此我猜"这应该起作用"指的是我的代码、对吧?

    谢谢、

    --冈萨洛

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

    是的、我应该澄清一下、我是说您应该工作。

    此致、