历史上的今天
返回首页

历史上的今天

今天是:2025年01月17日(星期五)

正在发生

2021年01月17日 | SPCE061A单片机采集脉搏数据

2021-01-17 来源:eefocus

这里所用的脉搏传感器是HK-2000B,模拟信号,可以采集脉搏波形,建议采用500HZ定时器来定时采集,因为市面上一些心电模块也是500HZ,因此,在一个定时器中断服务程序程序中,可以同时处理两组数据!!!以下代码有点乱,因为是在我现有项目中复制过来的。

以下为ADConvert.c

//============================================================

//传感器数据采集源代码

//============================================================

#include "SPCE 061A .h"

#define AD_END_FLAG        *P_ADC_MUX_Ctrl&0x8000                                                                                     //误差调整

//=====================================================================

// 函数: unsigned int Get_One_AD(void)

// 描述: 取得一次AD转换的值

// 参数: 无

// 返回: 转换值

//=====================================================================

unsigned int Get_One_AD(void)

{

   unsigned int uiData;

   while(!AD_END_FLAG);                             //等待ADC转换结束            

     uiData=*P_ADC_LINEIN_Data;

   return(uiData&0xffc0);

}

//=====================================================================

// 函数: unsigned long int Get_AD(void)

// 描述: 使用平均法,取得AD转换的平均值

// 参数: 无

// 返回: 转换值

//========================================================================

#define N 4 //必须在2~4

unsigned long int Get_AD(void)

{        

/*  unsigned int adc_value=0;

   int i;                  

   for(i=0;i   {

      adc_value += Get_One_AD()/N;

      *P_Watchdog_Clear=0x0001;

   }

     adc_value+=N;

   return (adc_value);*/

//

  unsigned  int count,i,j,temp;

  unsigned  int value_buf[N];

 

  for (count=0;count  {

    value_buf[count] = Get_One_AD();

  }

 

  for (j=0;j  {

    for (i=0;i    {

      if ( value_buf[i]>value_buf[i+1] )

      {

        temp = value_buf[i];

        value_buf[i] = value_buf[i+1];

        value_buf[i+1] = temp;

      }

    }

  }

  return value_buf[(N)];

}

//=====================================================================

// 函数: void AD_Initial(void)

// 描述: 初始化AD转换

// 参数: 无

// 返回: 无

//=====================================================================

void Init_AD(void)

{

         unsigned int Read_Start;

         *P_ADC_MUX_Ctrl=C_ADC_CH1;         //选择LINE_IN1通道,从IOA0输入

         *P_ADC_Ctrl= C_ADCE;                 //AD使能打开        

         Read_Start=*P_ADC_LINEIN_Data;             //AD开始转换

}

//*=================================================================

ISR.c:中断服务程序:

//======================================================================== // 函数: void IRQ6(void) // 描述: 512Hz中断服务程序,用于取得脉搏,心电数据 // 参数: 无 // 返回: 无 //======================================================================== int cardNpulse_data[500];//脉搏,心电数据,一秒采集500次unsigned int int cardNpulse_i=0; int tmp_max=0; int tmp_min=10; void IRQ6(void) __attribute__ ((ISR)); void IRQ6(void) {     if((*P_INT_Ctrl&C_IRQ6_TMB2))     {         sensor_data  =Get_AD();               cardNpulse_data[cardNpulse_i]=abs((sensor_data)/129);//缩小或放大数据         //----------------测试代码--------------         if(cardNpulse_data[cardNpulse_i]>tmp_max)             tmp_max=cardNpulse_data[cardNpulse_i];         if(cardNpulse_data[cardNpulse_i]=500)//如果采集的数据数量足够,则显示出来     {         FilterCMDSign(cardNpulse_data,500);         SendPackage(mcu_id,patient_id,check_type,cardNpulse_data);         cardNpulse_i=0;             } }


推荐阅读

史海拾趣

Foxboro I C T Inc公司的发展小趣事

在电子行业,尤其是工业自动化与控制领域,Foxboro I C T Inc(现为施耐德电气旗下的一部分,通常简称为Foxboro)的发展充满了创新与挑战。以下是五个与Foxboro在电子行业里发展起来相关的故事,每个故事均基于事实进行描述:

1. Foxboro的起源与早期创新

Foxboro的历史可以追溯到1908年,在美国马萨诸塞州的福克斯伯勒,E.H.和B.B.兄弟联手开设了商店,并逐渐发展成为一家专注于工业控制自动化的公司。1920年代,Foxboro推出了其第一款Model 10 Stabilog比例加复位控制器,这标志着公司在工业自动化领域的初步探索。此后,Foxboro持续在控制技术上取得突破,如1950年代发布的全尺寸图形面板仪表和首款磁流量计,这些创新为公司在工业控制领域奠定了坚实的基础。(参考来源:Foxboro官网及相关历史资料)

2. 分布式控制系统的先驱

进入1970年代,Foxboro推出了SPEC 200系统,这是全球第一款真正的分布式控制系统(DCS)。该系统通过分散控制、集中管理的理念,极大地提高了工业生产的效率和可靠性。SPEC 200系统的成功推出,不仅巩固了Foxboro在工业自动化领域的领先地位,也推动了整个行业向更加智能化、自动化方向发展。(参考来源:知乎专栏及相关行业报告)

3. 进入中国市场,引领自动化发展

1983年,在中美贸易合作的大背景下,Foxboro与中国上海仪电控股(集团)公司共同投资成立了上海福克斯波罗有限公司(即Foxboro中国)。作为最早的中美合资企业之一,Foxboro中国迅速将最新技术和产品引入中国,推动了中国过程自动化行业的蓬勃发展。在成立初期,Foxboro中国就完成了最新技术和产品向中国本土的转移,所生产的成套系统装置广泛应用于石油、化工、电力等多个行业。(参考来源:国际能源网及相关报道)

4. ISO 9001国际质量认证的历史性突破

1991年12月,Foxboro中国成为中国首个获得ISO 9001国际质量合格证书的企业。这一历史性突破不仅标志着Foxboro中国在质量管理上达到了国际先进水平,也为中国仪表行业乃至整个工业领域树立了标杆。此后,Foxboro中国积极分享其质量管理经验,帮助众多中国企业取得国际质量体系认证,推动了整个行业的质量提升。(参考来源:知乎专栏及相关历史资料)

5. 数字化时代的转型与升级

2014年,Foxboro被施耐德电气收购后,融入了施耐德电气的一体化能源管理与过程自动化解决方案。在此背景下,Foxboro推出了新一代EcoStruxure Foxboro DCS过程自动化系统。该系统融合了Foxboro I/A Series控制系统的可靠性和施耐德电气的数字化能力,为企业客户提供了一站式的平台服务。EcoStruxure Foxboro DCS的推出,标志着Foxboro在数字化时代迈出了重要一步,也为公司在全球工业自动化领域的持续发展注入了新的动力。(参考来源:施耐德电气官网及相关产品介绍)

Arduino公司的发展小趣事

2005年,意大利Ivrea交互设计学院的副教授Massimo Banzi面临了一个问题:他的学生们无法负担市面上昂贵的微控制器。为了解决这个问题,Banzi与他的同事David Cuartielles开始着手制造一个更便宜、更易于使用的电子平台。他们基于学生Hernando Barragá的Wiring平台,通过拆解和重新设计,最终推出了价格仅为30美元的Arduino电路板。Arduino的名字来源于他们常去的酒吧“di Re Arduino”,以此纪念这个创新的起点。

DEWALT公司的发展小趣事

在第二次世界大战期间,DEWALT公司面临了巨大的挑战。由于战争的影响,许多原材料和零部件供应中断,生产受到严重影响。然而,DEWALT公司凭借自身的技术实力和创新能力,成功克服了这些困难。公司还积极为军队提供所需的电动工具产品,为战争胜利做出了贡献。这些经历使DEWALT公司更加坚定了技术创新和品质控制的信念。

台湾唯圣(GW)公司的发展小趣事
在电路设计完成后,需要进行全面的测试验证,包括功能测试、安全测试等,以确保电路的性能符合设计要求。
Gigarams Semiconductor Device Corp公司的发展小趣事
这可能是由于定位力量不够或初始力矩过大导致的。解决方案包括调整定位参数、优化启动策略或增加缓冲装置以减少振动。
格瑞宝(GP)公司的发展小趣事

为了更好地服务客户和市场,格瑞宝在深圳、南京等地设立了分公司等派出机构。这些分公司的设立不仅加强了公司在华南、华东等地区的业务覆盖能力,也提高了公司的市场响应速度和客户服务水平。通过区域布局的优化,格瑞宝能够更加灵活地应对市场变化,抓住发展机遇,实现更快速的发展。

问答坊 | AI 解惑

图形点阵液晶显示模块使用手册

本帖最后由 paulhyde 于 2014-9-15 08:57 编辑 图形点阵液晶显示模块使用手册  …

查看全部问答>

SD卡或是U盘的物理扇区为什么有时前四个字节会被系统写成RRaA?

我通过我写的过滤驱动程序向U盘的物理扇区写入一个标识,是从第一位开始写的,例如“asdd12344”但是有时侯不知道什么原因,这个标识前四位会变成\"RRaA12344\",我可以肯定这个不是我写进去的。 请问这是怎么回事?…

查看全部问答>

请教大家:视频采集卡的图像预览在DDK中如何实现?

我需要写一个PCI接口的视频采集卡驱动程序,一个多月过去了,可是仍没有思路, 在DDK的src目录下有一个testcap的mini驱动,它可以产生图像在graphedit中 可以预览显示,但是不知道如何将它与我的PCI卡关联起来,请各位高手指点一下, 先谢谢了!…

查看全部问答>

请教 wince下打印机驱动程序由谁加载?怎么加载?

如题 wince下打印机驱动程序由谁加载? GWES OR DEVICE ? 怎么加载?开机自动加载还是动态加载? 谢谢  答者有分 …

查看全部问答>

求助!关于KEIL怎样和PROTUES怎样结合?

前几天看了一位大佬的帖子,是关于KEIL和PROTUES结合使用的问题,但我根据帖子上介绍的方法却怎样也结合不了,主要是PROTUES文件里找不到帖子上说的那个文件,所以没办法去做,请高手告诉我怎样去做啊,最好是用截图的方式贴出来,我这个菜鸟好跟着一步一 ...…

查看全部问答>

关于源同步时序的问题

现在很多ASIC外围都用到了DDR(II) SDRAM(SRAM),由于数据传输速率太快,数据信号基本都是采用的源同步,很多关于时序的资料都认为源同步的信号在PCB上布线是没有长度限制的(假设不考虑损耗),在对SRAM进行写入数据的时候倒还可以理解,但是在读 ...…

查看全部问答>

关于数码管显示的问题

我这两天在用FPGA作个数字钟,用六个数码管显示。我用20M的晶振经过分频得到1KHZ的信号,用这个信号去扫描数码管的位选择端。可是在显示时出了点问题,我想请教各位下能不能支个招让显示小时的那个数码管清楚点,我本来是想显示“02.01.00”,可是 ...…

查看全部问答>

采用DSP进行二次稳压的数控电源

[ 本帖最后由 lrz123 于 2011-10-25 10:48 编辑 ]…

查看全部问答>

大家是否用过上海上志的无线数传模块?求指点。

如您用过,那用下来感觉怎么样,我司测试了几片,目前还不错,但是不知道长期下来的稳定性和可靠性如何? 以前用过别家的(名字就不报了),通信距离可以,就是传输丢包率太高,误码也比较严重,所以这次换了家试用。由于项目比较急,没那么长时间 ...…

查看全部问答>