📄 cal_range.c
字号:
#include "global.h"
uint rge_ir[3],rge_r[3];
uint t_ir[3];
uint T_rise[2]={0,0};
uint t02_ir;
uint pul[8];
uint pul02[2];
uint th_rt01,th_rt02; //上升时间阈值
uint th1_t01,th1_t02,th2_t01,th2_t02; //周期阈值
uint t002_ir[4];
uchar p5=0;
uint s_t002;
uchar t3;
uint min_ir[3],min_r[3];
uint dc_ir,dc_r;
uchar ps=0;
uchar pole_flg=0;
void cal_range(void)
{
uint st_ir,s_pul,sge_ir,sge_r;
uint sdc_ir,sdc_r;
uint pn,ps2;
uchar p6;
if(T_rise[0]==0)
{
T_rise[0]=t_rise;
}
if(T_rise[0]!=0)
{
th_rt01=(9*T_rise[0])/10;
th_rt02=(11*T_rise[0])/10;
if((th_rt01<t_rise)&&(t_rise<th_rt02))
{
T_rise[1]=T_rise[0];
T_rise[0]=t_rise;
if(t_ir[0]==0)
{
t_ir[0]=t00_ir;
rge_ir[0]=m00_ir;
rge_r[0]=m00_r;
// min_ir[0]=m2_ir;
// min_r[0]=m2_r;
}
if((t_ir[0]!=0)&&(t_ir[1]==0))
{
th1_t01=(9*t_ir[0])/10;
th1_t02=(11*t_ir[0])/10;
if((25<t00_ir)&&(t00_ir<300)&&(th1_t01<t00_ir)&&(t00_ir<th1_t02))
{
t_ir[1]=t_ir[0];
rge_ir[1]=rge_ir[0];
rge_r[1]=rge_r[0];
// min_ir[1]=min_ir[0];
// min_r[1]=min_r[0];
t_ir[0]=t00_ir;
rge_ir[0]=m00_ir;
rge_r[0]=m00_r;
//min_ir[0]=m2_ir;
//min_r[0]=m2_r;
}
if((25>t00_ir)||(t00_ir>300)||(t00_ir<th1_t01)||(t00_ir>th1_t02))
{
t_ir[0]=t00_ir;
rge_ir[0]=m00_ir;
rge_r[0]=m00_r;
// min_ir[0]=m2_ir;
// min_r[0]=m2_r;
}
}
if(t_ir[1]!=0)
{
th2_t01=(9*t_ir[0])/10;
th2_t02=(11*t_ir[0])/10;
if((25<t00_ir)&&(t00_ir<300)&&(th2_t01<t00_ir)&&(t00_ir<th2_t02))
{
t_ir[2]=t_ir[1];
rge_ir[2]=rge_ir[1];
rge_r[2]=rge_r[1];
// min_ir[2]=min_ir[1];
// min_r[2]=min_r[1];
t_ir[1]=t_ir[0];
rge_ir[1]=rge_ir[0];
rge_r[1]=rge_r[0];
// min_ir[1]=min_ir[0];
// min_r[1]=min_r[0];
t_ir[0]=t00_ir;
rge_ir[0]=m00_ir;
rge_r[0]=m00_r;
// min_ir[0]=m2_ir;
// min_r[0]=m2_r;
if((20<rge_r[0]<10000)&&(20<rge_r[1]<10000)&&(20<rge_r[2]<10000))
{
if((20<rge_ir[0]<10000)&&(20<rge_ir[1]<10000)&&(20<rge_ir[2]<10000))
{
if(((8*(rge_ir[0]/10))<rge_ir[1])&&(rge_ir[1]<(12*(rge_ir[0]/10)))&&((8*(rge_ir[1]/10))<rge_ir[2])&&(rge_ir[2]<(12*(rge_ir[1]/10))))
{
sge_ir=0;
sge_r=0;
//sdc_ir=0;
//sdc_r=0;
for(pn=0;pn<3;pn++)
{
sge_ir+=rge_ir[pn];
sge_r+=rge_r[pn];
//sdc_ir+=min_ir[pn];
//sdc_r+=min_r[pn];
}
rg0_ir=sge_ir/3;
rg0_r=sge_r/3;
// dc_ir=sdc_ir/3;
//dc_r=sdc_r/3;
cal_spo2();
st_ir=0;
for(pn=0;pn<3;pn++)
{
st_ir+=t_ir[pn];
}
t002_ir[p5]=st_ir/3;
p5++;
if(p5==4)
{
p5=0;
}
if(t002_ir[3]!=0)
{
s_t002=0;
for(p6=0;p6<4;p6++)
{
s_t002+=t002_ir[p6];
}
t02_ir=s_t002/4;
}
if((25<t02_ir)&&(t02_ir<300))
{
pul[ps]=7200/t02_ir;
ps++;
if(ps==8)
{
ps=0;
}
if(pul[7]==0)
{
pul_rte=7200/t02_ir; //求脉率
if(pul_rte<=127)
{
t3=(t3&0xbf);
}
if(pul_rte>127)
{
t3=(t3|0x40);
}
}
if(pul[7]!=0)
{
s_pul=0;
for(ps2=0;ps2<8;ps2++)
{
s_pul+=pul[ps2];
}
pul_rte=s_pul/8; //求脉率
if(pul_rte<=127)
{
t3=(t3&0xbf);
}
if(pul_rte>127)
{
t3=(t3|0x40);
}
}
}
}
}
}
}
if((25>t00_ir)||(t00_ir>300)||(t00_ir<th2_t01)||(t00_ir>th2_t02))
{
T_rise[1]=T_rise[0];
T_rise[0]=t_rise;
t_ir[2]=0;
t_ir[1]=0;
t_ir[0]=0;
rge_ir[2]=0;
rge_r[2]=0;
rge_ir[1]=0;
rge_r[1]=0;
rge_ir[0]=0;
rge_r[0]=0;
//min_ir[2]=0;
//min_ir[1]=0;
//min_ir[0]=0;
//min_r[2]=0;
// min_r[1]=0;
// min_r[0]=0;
}
}
}
if((t_rise<th_rt01)||(t_rise>th_rt02))
{
T_rise[0]=t_rise;
T_rise[1]=0;
t_ir[2]=0;
t_ir[1]=0;
t_ir[0]=0;
rge_ir[2]=0;
rge_r[2]=0;
rge_ir[1]=0;
rge_r[1]=0;
rge_ir[0]=0;
rge_r[0]=0;
//min_ir[2]=0;
//min_ir[1]=0;
//min_ir[0]=0;
//min_r[2]=0;
//min_r[1]=0;
//min_r[0]=0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -