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

📄 max_min.c

📁 医疗电子,血氧浓度测量模块原程序,采用430 单片机.
💻 C
字号:
#include "global.h"
uint red_mm[11];
uint ired_mm[11];
uint amm_red;
uint amm_ired;
uint top_red[5];
uint top_ired[5];
uint red_max;
uint ired_max;
uchar r=0;
uchar n=0;

uint bot_red[5];
uint bot_ired[5];
uint red_min;
uint ired_min;
uchar mm=0;
uchar nn=0;

void max_min(void)
{
 uchar i,j,k,h,jj,hh,t,y,tt,yy;
 uint s_red;
 uint s_ired;
 uint red_h;
 uint ired_h;
 uint sax_red;
 uint sax_ired;
 
 uint red_d;
 uint ired_d;
 uint sin_red;
 uint sin_ired;
 
 for(i=10;i<1;i--)   //red_mm[11],ired_mm[11]队列结构
  {
   red_mm[i]=red_mm[i-1];
   ired_mm[i]=ired_mm[i-1];
  }
 red_mm[0]=red_a; 
 ired_mm[0]=ired_a;

 s_red=0;         //求平均
 s_ired=0;
 for(k=0;k<11;k++)    
  {
   s_red+=red_mm[k];
   s_ired+=ired_mm[k];
  }
   amm_red=s_red/11;
   amm_ired=s_ired/11;
  /************求最大值****************/
 if(amm_red>1.025*adj_red)      //求红光最大值
  {
   red_h=red_mm[0];      
   for(j=1;j<11;j++)
    {
     if(red_mm[j]>red_h)
      red_h=red_mm[j];     
    }
   if(red_h==red_mm[5])
    {
     top_red[r]=red_h;
     r++;
     if(r==5)
      {
       r=0;
      }
     sax_red=0;
     for(h=0;h<5;h++)
      {
       sax_red+=top_red[h];      
      }
     red_max=sax_red/5; 
    }
  }
 if(amm_ired>1.04*adj_ired)  //求红外最大值
  {    
   ired_h=ired_mm[0];
   for(jj=1;jj<11;jj++)
    {     
     if(ired_mm[jj]>ired_h)
      ired_h=ired_mm[jj];
    }
  if(ired_h==ired_mm[5])
   {
    top_ired[n]=ired_h; 
    n++;
    if(n==5)
     {
      n=0;
     }
    sax_ired=0;
    for(hh=0;hh<5;hh++)
     {  
      sax_ired+=top_ired[hh];
     } 
    ired_max=sax_ired/5;  
   }
 } 
 /************求最小值****************/
 if(amm_red<0.925*adj_red)      //求红光最小值
  {
   red_d=red_mm[0];      
   for(t=1;t<11;t++)
    {
     if(red_mm[t]<red_d)
      red_d=red_mm[t];     
    }
   if(red_d==red_mm[5])
    {
     bot_red[mm]=red_d;
     mm++;
     if(mm==5)
      {
       mm=0;
      }
     sin_red=0;
     for(y=0;y<5;y++)
      {
       sin_red+=bot_red[y];      
      }
     red_min=sin_red/5; 
    }
  }
 if(amm_ired<0.920*adj_ired)      //求红外最小值
  {
   ired_d=ired_mm[0];      
   for(tt=1;tt<11;tt++)
    {
     if(ired_mm[tt]<ired_d)
      ired_d=ired_mm[tt];     
    }
   if(ired_d==ired_mm[5])
    {
     bot_ired[nn]=ired_d;
     nn++;
     if(nn==5)
      {
       nn=0;
      }
     sin_ired=0;
     for(yy=0;yy<5;yy++)
      {
       sin_ired+=bot_ired[yy];      
      }
     ired_min=sin_ired/5; 
    }
  }
  
  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -