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.

[参考译文] TPS8802:烟雾探测器示例源代码和错误

Guru**** 647080 points
Other Parts Discussed in Thread: TPS8802, ENERGIA
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1015536/tps8802-smoke-detector-example-source-code-and-errors

器件型号:TPS8802
主题中讨论的其他器件: Energia

您好!

我们正在设计一个包含烟雾探测器和 TPS8802的传感器盒。

我们获得 了 TPS8802_MSP430_firmware 示例代码、并尝试根据我们的主机控制器对其进行转换。 但我们得到了以下错误、还有更多我没有复制的错误。

在"DualRaySmokeAFE_HAL_Config_FR235x_TPS880x_privace.h"文件中、定义如下所示为红线、但 TB0CCTL0、CCIE 等标识符定义不会放置在项目文件夹中。 这些可能与 MSP430 MCU 计时器寄存器有关。 但我们不知道这些器件的作用是什么、这些命令的用途是什么、因此我们不知道如何根据我们的主机平台对其进行转换。 此时我们需要您的支持。

在此示例项目中、我们认为有计时器、警报等详细场景 我们基本上只需要计算 CO 级别和烟雾检测。 如果您能共享一个示例代码、基本上包含这些器件、我将不胜感激。

谢谢。

BR

Burak

#define DUALRAYSMOKEAFE_HAL_TIMER_COMPAREINIT (x) \

                                           {TB0CCTL0 = CCIE;TB0CCR0 = x;}

 

编译 DualRaySmokeAFE_HAL_Timing_FR235x_TPS880x.c.

..\TPS8802\src\DualRaySmokeAFE_HAL\MSP430FR235x_TPS880x\tps880x_MSP430_i2c/tps880x_MSP430_i2c.h (53):警告 :#1295-D:弃用声明 tps880x_MSP430_i2c_Reset -提供参数类型

 extern INT8_t tps880x_MSP430_i2c_Reset ();

..\TPS8802\src\DualRaySmokeAFE_HAL\MSP430FR235x_TPS880x\DualRaySmokeAFE_HAL_Timing_FR235x_TPS880x.c (323):错误: #20:标识符"TB0CCTL0"未定义

     DUALRAYSMOKEAFE_HAL_TIMER_COMPAREINIT (DELAY_CYCLES); //初始化捕捉模式下的定时器

..\TPS8802\src\DualRaySmokeAFE_HAL\MSP430FR235x_TPS880x\DualRaySmokeAFE_HAL_Timing_FR235x_TPS880x.c (323):错误: #20:标识符"CCIE"未定义

     DUALRAYSMOKEAFE_HAL_TIMER_COMPAREINIT (DELAY_CYCLES); //初始化捕捉模式下的定时器

..\TPS8802\src\DualRaySmokeAFE_HAL\MSP430FR235x_TPS880x\DualRaySmokeAFE_HAL_Timing_FR235x_TPS880x.c (323):错误: #20:标识符"TB0CCR0"未定义

     DUALRAYSMOKEAFE_HAL_TIMER_COMPAREINIT (DELAY_CYCLES); //初始化捕捉模式下的定时器

..\TPS8802\src\DualRaySmokeAFE_HAL\MSP430FR235x_TPS880x\DualRaySmokeAFE_HAL_Timing_FR235x_TPS880x.c (324):错误: #20:标识符"TB0CTL"未定义

     DUALRAYSMOKEAFE_HAL_TIMER_LPCOMPARESTART ();            //开始计时器

..\TPS8802\src\DualRaySmokeAFE_HAL\MSP430FR235x_TPS880x\DualRaySmokeAFE_HAL_Timing_FR235x_TPS880x.c (324):错误 :#20:标识符"TBSSEL_ACLK"未定义

     DUALRAYSMOKEAFE_HAL_TIMER_LPCOMPARESTART ();            //开始计时器

..\TPS8802\src\DualRaySmokeAFE_HAL\MSP430FR235x_TPS880x\DualRaySmokeAFE_HAL_Timing_FR235x_TPS880x.c (324):错误: #20:标识符"MC__UP"未定义

     DUALRAYSMOKEAFE_HAL_TIMER_LPCOMPARESTART ();            //开始计时器

..\TPS8802\src\DualRaySmokeAFE_HAL\MSP430FR235x_TPS880x\DualRaySmokeAFE_HAL_Timing_FR235x_TPS880x.c (324):错误: #20:标识符"TBCLR"未定义

     DUALRAYSMOKEAFE_HAL_TIMER_LPCOMPARESTART ();            //开始计时器

..\TPS8802\src\DualRaySmokeAFE_HAL\MSP430FR235x_TPS880x\DualRaySmokeAFE_HAL_Timing_FR235x_TPS880x.c (329):警告: #223-D:函数"_bis_SR_register"隐式声明

         _bis_SR_register (LPM3_bits + GIE);

..\TPS8802\src\DualRaySmokeAFE_HAL\MSP430FR235x_TPS880x\DualRaySmokeAFE_HAL_Timing_FR235x_TPS880x.c (329):错误: #20:标识符"LPM3_bits"未定义

         _bis_SR_register (LPM3_bits + GIE);

..\TPS8802\src\DualRaySmokeAFE_HAL\MSP430FR235x_TPS880x\DualRaySmokeAFE_HAL_Timing_FR235x_TPS880x.c (329):错误: #20:标识符"GIE"未定义

         _bis_SR_register (LPM3_bits + GIE);

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

    Burak、您好!

    感谢您的提问。 今天是美国假日、请在回答您的问题时等待一些延迟。

    如果您正在寻找执行烟雾和 CO 测量的基本代码、我们提供了 Energia 代码。 这是用于基本评估的高级 MSP430代码。

    www.ti.com/.../slvc813

    最棒的

    授予

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

    尊敬的 Grant:

    感谢您的反馈和分享。 我将快速检查该项目是否能让您了解我们的困境。 谢谢。

    BR

    Burak

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

    尊敬的 Grant:

    我们检查了您共享的项目、但它不包含源代码、它具有.ino 文件。 您可以共享此项目的源代码吗? 或者、对于我们来说、拥有 CO 和烟雾检测初始化和计算部件就足够了。 提前感谢。

    BR

    Burak

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

    您好!

    如果能获得有关.c 文件源代码示例的支持、我将不胜感激。

    BR

    Burak

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

    Burak、您好!

    很抱歉,我刚刚休假回来。

    INO 文件 用于使用 MSP430和 Energia 进行基本烟雾和 CO 评估。 我没有此代码的任何变体(即.c 代码)。

    以下是我们的软件工程师的反馈:

    "演示中有一个 HAL 尝试对硬件层进行模块化、但它们必须自己迁移其中的一些函数。

     

    即、他们提到:

    #define DUALRAYSMOKEAFE_HAL_TIMER_COMPAREINIT (x)  

    此宏在比较模式下初始化 TimerB,这对于 MSP430非常具体,但对于更通用的 API 来说是必需的:

    DualRaySmokeAFE_HAL_Timing_GPTimer_BlockingLPDelayms

    DualRaySmokeAFE_HAL_Timing_GPTimer_BlockingHPDelayus

    这些函数将实现 ms 和 us 的通用计时器延迟,用于应用程序中的多种用途,并且可能需要类似的功能。 该演示使用这些函数来等待几个稳定时间、例如升压、LDO、VREF、AFE、温度传感器、 等等

     

    因此,他们不需要迁移宏,但如果他们希望遵循我们建议的流程,他们可能需要实施自己的延迟。

     

    这只是一个示例,但我的观点是删除某些硬件并不是那么简单,特别是因为它们使用的是具有其自身功能的不同主机 MCU。

     

    我认为最好的方法可能是将代码用作参考、而不是直接迁移。 即、首先迁移尝试读取/写入 TPS880x 寄存器的低级 i2c 函数、然后移至更高级别的 API、例如 DualRaySmokeAFE_HAL_AFE_Init 和 DualRaySmokeAFE_HAL_AFE_Measurement。"

    我将向您发送一封包含更多信息的私人邮件。

    最棒的

    授予