在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)之AD學(xué)習(xí)筆記

            單片機(jī)之AD學(xué)習(xí)筆記

            作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò) 收藏
            最近調(diào)試了幾個(gè)單片機(jī)的AD轉(zhuǎn)換模塊,碰到了一些問題,總結(jié)了一下

            AD轉(zhuǎn)換就是選通道、比較電壓、要采集電壓的端口設(shè)置為模擬端口

            本文引用地址:http://www.biyoush.com/article/201611/322015.htm

            1、選擇參考電壓源

            2、選擇AD轉(zhuǎn)換時(shí)鐘

            3、要采集電壓的端口設(shè)置為模擬端口

            4、選擇要采樣的模擬通道

            5、使能AD模塊

            PIC24FJ

            開始看此部分是調(diào)試電池電量的時(shí)候,是由于電池電量顯示不準(zhǔn)確,debug模式下,看ad采集到的電壓被轉(zhuǎn)換成的數(shù)據(jù),發(fā)現(xiàn)寄存器ADC1BUF中的數(shù)據(jù)只有關(guān)開機(jī)是正確的,以后的值都是不對(duì)的好像大多數(shù)的值是零,后來(lái)發(fā)現(xiàn)是由于在主循環(huán)中的某個(gè)模塊又把原來(lái)配置為模擬輸入端口引腳還原成了普通的I/O口了(就是AD1PCFGbits.PCFG0先被配置為0后又被置1,我用的是通道0)。

            A/D代碼初始化實(shí)例

            AD1PCFG = 0; // 配置ad端口,配置所有端口為模擬端口,要是作為普通io使用必須置1
            AD1CON1 = 0x2208; // 配置采樣時(shí)鐘源
            AD1CON2 = 0; // 配置A/D 比較電壓,轉(zhuǎn)換在每個(gè)采樣結(jié)束后開始
            AD1CON3 = 0; // 配置 A/D 轉(zhuǎn)換時(shí)鐘 是Tcy/2
            AD1CHS = 0; // 配置輸入通道,CH0+輸入 AN0,CH0-輸入 Vr- (AVss).
            AD1CSSL = 0; // 輸入掃描被禁止
            IFS0bits.AD1IF = 0; // 清中斷


            IPC3bits.AD1IP2 =1;
            IPC3bits.AD1IP1 =1;

            IPC3bits.AD1IP0 =0; //配置 A/D 中斷優(yōu)先級(jí)


            IEC0bits.AD1IE = 1; //使能 A/D 中斷
            AD1CON1bits.ADON = 1; //打開 A/D
            AD1CON1bits.SAMP = 1; // 開始采樣輸入
            Delay(); //延時(shí),確保開始轉(zhuǎn)換時(shí),采樣的時(shí)間已結(jié)束
            AD1CON1bits.SAMP = 0; // A/D采樣結(jié)束,開始轉(zhuǎn)換

            中斷
            void __attribute__ ((__interrupt__)) _ADC1Interrupt(void)
            {
            IFS0bits.AD1IF = 0;
            }
            在pic的數(shù)據(jù)手冊(cè)中有比較詳細(xì)的例程,值得參考

            MSP430

            這個(gè)單片機(jī)的比較電壓可以選擇內(nèi)部或外部的

            問題:AD轉(zhuǎn)換,單通道單次轉(zhuǎn)化和單通道多次轉(zhuǎn)換有什么區(qū)別

            單次轉(zhuǎn)換是指進(jìn)行一次轉(zhuǎn)換前需要你給一次指令。
            連續(xù)轉(zhuǎn)換的話開啟后自動(dòng)連續(xù)進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換的數(shù)據(jù)連續(xù)進(jìn)行更新。
            如果你采用單次轉(zhuǎn)換,就需要不斷發(fā)送轉(zhuǎn)換的命令,讀取結(jié)果,再發(fā)轉(zhuǎn)換命令,再讀。就是循環(huán)啦。
            如果連續(xù)轉(zhuǎn)換開啟的話,就在程序中循環(huán)讀就可以了。

            STM32

            在采集電池電壓時(shí)遇到了問題,3.9v到4.2v的電壓得到的ad轉(zhuǎn)換的電壓值的寄存器存儲(chǔ)的電壓值正常,3.9v以下的值不正確,發(fā)現(xiàn)是Vref+輸入的比較電壓不穩(wěn)定造成的。



            評(píng)論


            技術(shù)專區(qū)

            關(guān)閉