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.

[参考译文] CCS/MSP430G2553:您好,I'已成功地将MSP430G2553与脉冲传感器连接在一起,但I' m在检测值和计算每分钟心跳时遇到困难

Guru**** 2502205 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/664311/ccs-msp430g2553-hello-i-ve-successfully-interfaced-the-msp430g2553-with-a-pulse-sensor-but-i-m-having-trouble-making-sense-of-the-values-and-calculating-heart-beats-per-minute

部件号:MSP430G2553

工具/软件:Code Composer Studio

我的代码如下,我正在尝试计算每分钟的心跳,但不知道从哪里开始。 我知道计算HBM的各种方法,但不知道从哪里开始。 代码的作用是从脉冲传感器获得10个值并将其平均值-(因此基本上它根本没有什么作用)。 有人能给我一个关于如何计算HBM的想法吗,比如使用阈值方法? 任何建议都很有帮助。 谢谢!

#include "msp430g2253.h"

//变量
int ADC[50]={0};//设置10个整数的数组,值
为零int avg_adc = 0;

//函数原型
void ADC_Setup();
void ADC_Sam10();

void main()
{
WDTCTL = WDTPW + WDTHOLD; //停止WDT
ADC_Setup(); //为ADC_setup发出的fucnion调用

同时(1)
{
长适配器= 0;
ADC_Sam10 (); // ADC_SAMP的功能调用
//将所有抽样数据相加,然后除以10,得出平均值
INT I = 0;
对于(i = 0;i <= 49;I++){
adctot = adctot + adc[i];
}
AVG_ADC = adctot/50;
}
}//

ADC10中断服务例程
#pragma vector=ADC10_vector
__interrupt void ADC10_ISR(void)
{__BIC_SR_REGISTER_ON_EXIT(CPUOFF);
//从0(SR)清除CPUOFF位
}//

ADC设置函数
void ADC_Setup()
{
ADC10CTL1 = CONSEQ_2 + Inch_0; //重复单通道,A0
ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE;//采样和保持时间+ ADC10开启+中断启用
ADC10DTC1 = 0x32; //1000个转换
ADC10AE0 |= 0x01; // WFP 1.0 ADC选项选择
}//

ADC样本转换函数
void ADC_Sam10()
{
ADC10CTL0 &=~ENC; //禁用转换
当(ADC10CTL1和占线); //如果ADC10正忙,请等待
ADC10SA =(内部) ADC; //将数据传输到下一个阵列(DTC自动递增地址)
ADC10CTL0 |= ENC + ADC10SC; //启用转换和转换开始
__bis_sr_register(CPUOFF + GIE);//低功率模式0,ADC10_ISR
} 

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

    您好,Sarosh:

    您将基本计算2个脉冲之间的周期。 假设您的代码逻辑如下所示:

    • 在第一个脉冲时,您启动计时器重置其计数器。
    • 在任何其他脉冲中,您测量计数器(现在为您提供周期),然后为下一个脉冲再次重置计数器。

    通过计算2次脉冲之间的周期,您应该能够计算心率。 您可以在每次读数时执行此操作,也可以在10次脉冲之间计算平均周期。

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

    此问题是否已解决? 如果是,请将其标记为"已回答"。 如果很快没有响应,则此线程将由于不活动而关闭。

    此致,
    Nathan