⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cal_character.c

📁 医疗电子,血氧浓度测量模块原程序,采用430 单片机.
💻 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 + -