<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 用于STC單片機內置10位AD轉換的代碼+【軟件濾波】

用于STC單片機內置10位AD轉換的代碼+【軟件濾波】

作者: 時(shí)間:2016-11-29 來(lái)源:網(wǎng)絡(luò ) 收藏
上面這段GetADCResult()是原來(lái)的AD采集,沒(méi)什么變化,看看就行了

GetResult()這個(gè)是軟件濾波的,10位AD的之前弄濾波總出錯,今天剛弄好。
關(guān)鍵在于(unsigned long)(),不加這個(gè)就總出錯!計算過(guò)程中溢出,感覺(jué)好像是計算時(shí)自動(dòng)降位了

本文引用地址:http://dyxdggzs.com/article/201611/323396.htm
ulong GetADCResult(uchar ch){ulong AD_result;ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;_nop_();                        //Must wait before inquiry_nop_();_nop_();_nop_();while (!(ADC_CONTR & ADC_FLAG));//Wait complete flagADC_CONTR &= ~ADC_FLAG;         //Close ADCAD_result=ADC_RES*4+ADC_RESL; return   AD_result;             //Return ADC result 10bit}ulong GetResult(uchar ch)  //濾波段{ulong AD_result=0,AD_result1=0;ulong AD_max,AD_min,AD_temp;char AD_i,AD_o;for(AD_i=0;AD_i<4;AD_i++){AD_min=AD_max=GetADCResult(ch);AD_result=0;for(AD_o=0;AD_o<8;AD_o++){AD_temp=GetADCResult(ch);if(AD_tempAD_max){AD_result =(unsigned long)(AD_result + (unsigned long)AD_max); AD_max=AD_temp;}else AD_result =(unsigned long)(AD_result + (unsigned long)AD_temp);}AD_result=(unsigned long)(AD_result/8);AD_result1=AD_result1+ (unsigned long)(AD_result); }AD_result1=(unsigned long)(AD_result1/4);return   AD_result;             //Return ADC result 10bit}

方法是基于:去除最大最小值后平均。共采樣了33次去掉9個(gè)后的結果平均值,我自己做電壓表,速度足夠!如果嫌慢的話(huà)可以把AD_i<4中的這個(gè)4改小點(diǎn)或者把這個(gè)循環(huán)去掉。



關(guān)鍵詞: STC單片機AD轉軟件濾

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>