日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

電子工程師聯(lián)盟
認(rèn)證:VIP會(huì)員
作者動(dòng)態(tài)
一文了解PCB材質(zhì)及其應(yīng)用特性,總有一種你沒見過!
4天前
閂鎖效應(yīng):芯片的"自毀開關(guān)",從EMC誘因到板級(jí)防護(hù)措施一文說清
3星期前
PCB布局布線的基本原則
3星期前
淺談車門把手觸摸開鎖實(shí)現(xiàn)原理
08-12 09:18
Altium Designer18 Gerber 文件的生成方法
08-11 11:50

AD(模數(shù)轉(zhuǎn)換)數(shù)據(jù)濾波函數(shù)模塊,拿來即用!

正題

今天把我平時(shí)經(jīng)常用到的一個(gè)AD均值濾波函數(shù),重新封裝了一下,作為一個(gè)模塊分享出來。

說白了就是通過AD采集得到一組數(shù)據(jù),然后去掉這組數(shù)中的最大值和最小值,剩下的數(shù)據(jù)求和,再求平均,原理就是這么簡單。在單片機(jī)包含數(shù)據(jù)采集需求的開發(fā)項(xiàng)目中,往往最簡單的也是最直接最有效的。

這里需要注意的是:數(shù)據(jù)濾波所采集的數(shù)據(jù)量問題。如果數(shù)據(jù)量過大,則濾波后的數(shù)據(jù)會(huì)產(chǎn)生一定程度的失真,并且實(shí)時(shí)性也會(huì)有所下降。對(duì)于實(shí)時(shí)性要求比較高的應(yīng)用中,應(yīng)根據(jù)實(shí)際調(diào)試效果決定參與濾波的數(shù)據(jù)量。濾波效果達(dá)不到預(yù)期,一方面考慮AD模塊的配置問題,硬件電路設(shè)計(jì)問題,然后還有就是根據(jù)所采集的數(shù)據(jù)特性考慮其他濾波算法。

如下代碼,為該函數(shù)

void dataAveFilterFunction(ST_Ave_Filter *pST_Ave_Filter,uint16_t Channel,uint16_t (*pfun)(uint8_t))
{
 pST_Ave_Filter->Samp = pfun(Channel);
 pST_Ave_Filter->Count++;
 if(pST_Ave_Filter->Count == 1)
 {
  pST_Ave_Filter->Max =  pST_Ave_Filter->Samp;
  pST_Ave_Filter->Min =  pST_Ave_Filter->Samp;
 }
 if( pST_Ave_Filter->Samp > pST_Ave_Filter->Max)
 {
  pST_Ave_Filter->Max = pST_Ave_Filter->Samp;
 }
 if(pST_Ave_Filter->Samp < pST_Ave_Filter->Min)
 {
  pST_Ave_Filter->Min = pST_Ave_Filter->Samp;
 }
 pST_Ave_Filter->Sum = pST_Ave_Filter->Sum + pST_Ave_Filter->Samp;
 
 if(pST_Ave_Filter->Count == (pST_Ave_Filter->Time + 2))
 {
  pST_Ave_Filter->Ave = (pST_Ave_Filter->Sum -pST_Ave_Filter->Max-pST_Ave_Filter->Min)/( pST_Ave_Filter->Time);
  pST_Ave_Filter->Sum = 0;
  pST_Ave_Filter->Count = 0;
 }
}

該函數(shù)用到的

typedef struct
{
  uint8_t      Count;           //計(jì)數(shù)累加變量
  uint8_t      Time;            //設(shè)定數(shù)據(jù)個(gè)數(shù)
  uint16_t     Max;             //一定數(shù)量的取值中,挑選出的最大值
  uint16_t     Min;             //一定數(shù)量的取值中,挑選出的最小值
  uint16_t     Sum;             //求和
  uint16_t     Ave;             //求平均
  uint16_t     Samp;            //采樣變量   
}ST_Ave_Filter;

以上就是今天分享的內(nèi)容,歡迎大家關(guān)注、點(diǎn)贊、在看、轉(zhuǎn)發(fā)、留言。讓我們一起學(xué)習(xí),共同進(jìn)步!

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 3
收藏 4
關(guān)注 51
成為作者 賺取收益
全部留言
0/200
成為第一個(gè)和作者交流的人吧