📄 cal_character.c
字号:
#include "global.h"
uint d2_ir[2];
uint m00_ir,m00_r;
uint dif01;
uint t_rise;
uint HH_th;
uint ddd_ir;
void cal_character(void)
{
uchar pi;
for(pi=9;pi>0;pi--) //队列结构
{
red_abj[pi]=red_abj[pi-1];
ired_abj[pi]=ired_abj[pi-1];
}
red_abj[0]=r_abj; //滤波
ired_abj[0]=ir_abj;
if(ired_abj[9]!=0)
{
// dif01=ired_abj[0]-ired_abj[7]+100;
if(ired_abj[0]<ired_abj[7]) //信号微分处理
{
d1_ir=0;
}
if(ired_abj[0]>ired_abj[7])
{
d1_ir=ired_abj[0]-ired_abj[7];
}
/**********调试程序段**************/
//if(ired_abj[0]<ired_abj[4]) //信号微分处理
// {
// ddd_ir=0;
// }
//if(ired_abj[0]>ired_abj[4])
// {
// ddd_ir=(2*ired_abj[0]+ired_abj[1]-ired_abj[3]-2*ired_abj[4])/8;
// }
// TXBUF0=(ddd_ir/30);
// while((UTCTL0&0X01)==0);
/**********调试程序段**************/
d2_ir[1]=d2_ir[0]; //微分信号-阈值
HH_th=5*(HH_ir/6);
if(d1_ir>HH_th)
d2_ir[0]=d1_ir-HH_th;
if(d1_ir<HH_th)
d2_ir[0]=0;
}
// TXBUF0=(d1_ir/30);
//while((UTCTL0&0X01)==0);
if((d2_ir[0]!=0)&&(d2_ir[1]==0)) //取最小值点信息
{
t1_ir[1]=t1_ir[0];
t1_ir[0]=sumcount;
m1_ir=ired_abj[7];
m1_r=red_abj[7];
if(t1_ir[1]!=0)
{
t00_ir=t1_ir[0]-t1_ir[1];
}
}
if((d2_ir[0]==0)&&(d2_ir[1]!=0)) //取最大值点信息
{
t2_ir=sumcount;
m2_ir=ired_abj[0];
m2_r=red_abj[0];
t_rise=t2_ir-t1_ir[0];
m00_ir=m2_ir-m1_ir;
m00_r=m2_r-m1_r;
if((5<m00_ir)&&(m00_ir<10000)&&(5<m00_r)&&(m00_r<10000))
{
if((25<t00_ir)&&(t00_ir<300))
{
cal_range();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -