<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)常用函數(shù)(濾波、字符處理等)

          單片機(jī)常用函數(shù)(濾波、字符處理等)

          作者: 時(shí)間:2016-11-18 來(lái)源:網(wǎng)絡(luò) 收藏

          //函數(shù)名:filter
          //功能描述:平均值濾波
          //輸入?yún)?shù):
          //int iput:要濾波的數(shù)據(jù)
          //int buf[]:濾波緩存數(shù)組指針
          //uint *count:濾波計(jì)數(shù)器指針
          //uint lenght:濾波深度
          //long int *sum:緩存數(shù)組中所有數(shù)據(jù)的和指針
          //返回值:濾波后的平均值
          //==================================================================================
          int filter(int iput,int buf[],uint *count,uint lenght,long int *sum)
          {
          int a=0;
          int adtemp=0;
          adtemp = buf[lenght-1];
          for (a=lenght-1;a>0;a--)
          {
          buf[a]=buf[a-1];
          }
          buf[0]=iput;
          if (*count*count=*count+1;
          *sum=*sum+iput-adtemp;
          return (int)(*sum/(*count));
          }
          //==============================End filter==========================================

          本文引用地址:http://www.ex-cimer.com/article/201611/315879.htm

          //==============================Start ftostr=========================================
          /*
          // 函數(shù)名:ftostr
          // 輸入?yún)?shù):待轉(zhuǎn)換數(shù)字,存放字符串,浮點(diǎn)小數(shù)后邊位數(shù)
          // 描述:將浮點(diǎn)型數(shù)據(jù)轉(zhuǎn)換為字符串
          // 返回值:字符串大小
          */
          //===================================================================================
          int ftostr(float fNum,char str[],int dotsize)
          {
          // 定義變量
          int iSize=0;//記錄字符串長(zhǎng)度的數(shù)
          int n=0;//用作循環(huán)的臨時(shí)變量
          char *p=str;//做換向時(shí)用的指針
          char *s=str;//做換向時(shí)用的指針
          char isnegative=0;//負(fù)數(shù)標(biāo)志
          unsigned long int i_predot;//小數(shù)點(diǎn)前的數(shù)
          unsigned long int i_afterdot;//小數(shù)點(diǎn)后的數(shù)
          float f_afterdot;//實(shí)數(shù)型的小數(shù)部分

          //判斷是否為負(fù)數(shù)
          if(fNum<0)
          {
          isnegative=1;//設(shè)置負(fù)數(shù)標(biāo)志
          fNum=0-fNum;//將負(fù)數(shù)變?yōu)檎龜?shù)
          }

          i_predot=(unsigned long int)fNum;//將小數(shù)點(diǎn)之前的數(shù)變?yōu)檎麛?shù)
          f_afterdot=fNum-i_predot;//單獨(dú)取出小數(shù)點(diǎn)之后的數(shù)
          //根據(jù)設(shè)定的要保存的小數(shù)點(diǎn)后的位數(shù),將小數(shù)點(diǎn)后相應(yīng)的位數(shù)變到小數(shù)點(diǎn)之前
          for(n=dotsize;n>0;n--)
          {
          f_afterdot=f_afterdot*10;
          }
          i_afterdot=(unsigned long int)f_afterdot;//將小數(shù)點(diǎn)后相應(yīng)位數(shù)的數(shù)字變?yōu)檎麛?shù)

          //先將小數(shù)點(diǎn)后的數(shù)轉(zhuǎn)換為字符串
          n=dotsize;
          while(i_afterdot>0|n>0)
          {
          n--;
          str[iSize++]=i_afterdot%10+0;//對(duì)10取余并變?yōu)锳SCII碼
          i_afterdot=i_afterdot/10;//對(duì)10取商
          }
          str[iSize++] =.;//加上小數(shù)點(diǎn)
          //處理小數(shù)點(diǎn)前為0的情況。
          if(i_predot==0)
          str[iSize++]=0;
          //再將小數(shù)點(diǎn)前的數(shù)轉(zhuǎn)換為字符串
          while(i_predot>0)
          {
          str[iSize++]=i_predot%10+0;//對(duì)10取余并變?yōu)锳SCII碼
          i_predot=i_predot/10;//對(duì)10取商
          }

          if(isnegative==1)
          str[iSize++]=-;//如果是負(fù)數(shù),則在最后加上負(fù)號(hào)
          str[iSize] =看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();