久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6003|回復(fù): 7
收起左側(cè)

STC8A8K單片機(jī)雙通道ADC結(jié)果一樣的問(wèn)題!

[復(fù)制鏈接]
ID:581932 發(fā)表于 2019-7-10 21:29 | 顯示全部樓層 |閱讀模式
單通道ADC結(jié)果沒(méi)有問(wèn)題,現(xiàn)在需要“同時(shí)”采集兩路ADC,發(fā)現(xiàn)結(jié)果總是驚人的一致!甚至一個(gè)通道加電壓,另一個(gè)通道不加電壓,兩者得到的結(jié)果都是一樣的!
在論壇中發(fā)現(xiàn)一個(gè)類(lèi)似的帖子:http://www.zg4o1577.cn/bbs/dpj-153743-1.html
該網(wǎng)友提到“把原通道清零”可以解決,但是我沒(méi)太懂,請(qǐng)哪位高人指點(diǎn)一下~

這是初始化和ADC函數(shù):我使用的是P0.4和P0.5兩通道。
uchar ADCch_dz=0x0C; //P0.4
uchar ADCch_gd=0x0D; //P0.5


微信截圖_20190710212222.png
這是在主函數(shù)中調(diào)用的ADC函數(shù),這里執(zhí)行完,DZ_Data和GD_Data結(jié)果保持一致。
500ms查詢(xún)一次。
微信截圖_20190710212403.png



回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2019-7-11 09:49 | 顯示全部樓層
ADC采樣時(shí),為了防止“彈動(dòng)”,會(huì)用一只電容采樣輸入的電壓。
當(dāng)你下達(dá)起動(dòng)命令后,電容就與輸入分離,這樣電容上的電壓就不再受輸入影響了(彈動(dòng)),再對(duì)電容上的電壓進(jìn)行對(duì)分處理。
這個(gè)電容在ADC內(nèi)部。
多路采樣時(shí),多路切換開(kāi)關(guān)在電容的前端,當(dāng)你切換之后,需要保持一段時(shí)間,因?yàn)殡娙萆系碾妷菏遣荒苘S變的!否則電容上的電壓就與上一次的一樣!
明白這個(gè)道理正確的做法如下:
1、起動(dòng)本次采樣,等待采樣結(jié)束(這期間去做其它事,不要呆等浪費(fèi)CPU時(shí)間)。
2、采樣結(jié)束了,立即切換到下個(gè)通道(不要急于分析處理數(shù)據(jù)),這樣最節(jié)省采樣時(shí)間。
3、處理分析本次采樣到的數(shù)據(jù)。
4、估計(jì)切換有了一段時(shí)間了(自己按實(shí)際情況評(píng)估這段時(shí)間的長(zhǎng)短),再起動(dòng)采樣測(cè)量下個(gè)通道的電壓,這時(shí)電壓采樣也OK了(采樣電容有了足夠的充電時(shí)間)。
這樣你的問(wèn)題就解決了,而且數(shù)據(jù)穩(wěn)定!
不是高手注意不到這個(gè)細(xì)節(jié),也不一定明白其中的道理。
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2019-7-11 09:51 | 顯示全部樓層
這個(gè)書(shū)上有(需要看原理圖),但你不一定注意到。你的師傅也未必能講透,師傅也未必注意到。
回復(fù)

使用道具 舉報(bào)

ID:581932 發(fā)表于 2019-7-11 09:56 | 顯示全部樓層
解決了!
uint GetADCresults(uchar adcch)
{
        ADC_RES   = 0;
        ADC_RESL  = 0;
        ADC_CONTR = ADC_POWER|ADC_START|adcch;
        Delay(10);
        while(!(ADC_CONTR & ADC_FLAG));             //等待ADC完成
        ADC_CONTR &= ~ADC_FLAG;                     //清零ADC_FLAG
        ADC_CONTR &= ~ADC_START;                    //關(guān)閉ADC
       
        return (ADC_RES<<8 | ADC_RESL);
}

最重要的是這一句。初始化的時(shí)候不要上電。在采樣函數(shù)中每切換一次通道就上一次電就可以了。
ADC_CONTR = ADC_POWER|ADC_START|adcch;
回復(fù)

使用道具 舉報(bào)

ID:613800 發(fā)表于 2019-12-12 20:34 | 顯示全部樓層
echowilson 發(fā)表于 2019-7-11 09:56
解決了!
uint GetADCresults(uchar adcch)
{

這等與開(kāi)啟ad電源,轉(zhuǎn)換第一個(gè)端口ad值,然后再次開(kāi)啟電源,轉(zhuǎn)換下一個(gè)端口ad值???
回復(fù)

使用道具 舉報(bào)

ID:826405 發(fā)表于 2020-10-6 22:59 | 顯示全部樓層
能分享下編程么,小白學(xué)習(xí)下,謝謝
回復(fù)

使用道具 舉報(bào)

ID:883810 發(fā)表于 2023-12-6 22:17 | 顯示全部樓層
echowilson 發(fā)表于 2019-7-11 09:56
解決了!
uint GetADCresults(uchar adcch)
{

謝謝
回復(fù)

使用道具 舉報(bào)

ID:1034262 發(fā)表于 2023-12-7 00:27 | 顯示全部樓層
用STC官方的例程一試就好。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美一区二区三区在线看 | 伊人久操 | 亚洲国产18 | 亚洲精品成人网 | 91成人在线 | 91精品国产91久久久久久吃药 | 麻豆天堂| 欧美国产日韩在线观看 | 免费日韩av| 综合久久色 | 国产婷婷精品 | 日本高清不卡视频 | 日韩一区精品 | 国产乱人伦 | 天天操天天怕 | a级免费黄色片 | 免费在线a视频 | 免费观看a级毛片在线播放 黄网站免费入口 | www.久久久久久久久久久久 | 成人一区二区在线 | 美女天天操 | www,黄色,com | 成人在线国产 | 日韩和的一区二区 | www.日本国产 | 激情欧美日韩一区二区 | 日本欧美国产在线观看 | 91精品国产欧美一区二区成人 | 亚洲国产精选 | 国产综合精品 | 在线精品一区 | 一区精品国产欧美在线 | 日本特黄a级高清免费大片 特黄色一级毛片 | www.日本在线播放 | 人人爱干| 91视频a| 国产欧美精品一区二区三区 | 国产欧美在线一区二区 | 日韩精品免费一区 | 精品久久久久久久 | 日本一区二区视频 |