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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于avr單片機(jī)兩路ad信號(hào)的單獨(dú)采集問(wèn)題

          關(guān)于avr單片機(jī)兩路ad信號(hào)的單獨(dú)采集問(wèn)題

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

          最近做了個(gè)跟ad相關(guān)的項(xiàng)目,需要兩路,具體步驟如下
          1.選擇參考電源 2.選擇采集通道 3.選擇ad轉(zhuǎn)換時(shí)鐘 4.使能ad模塊,5開始轉(zhuǎn)換,6.等待轉(zhuǎn)換結(jié)束,7.讀取數(shù)據(jù)

          經(jīng)過(guò)測(cè)試分別單路采集沒問(wèn)題,可把兩個(gè)連起來(lái),就出問(wèn)題了,第二路采集的結(jié)果跟第一路總是相同,把第二路放到前邊,然后采集第一路,結(jié)果第一路的結(jié)果跟第二路的相同。郁悶啊,經(jīng)過(guò)檢查初始化及管腳設(shè)置都正確,測(cè)試多次仍然沒辦法解決,暫時(shí)放下處理其他問(wèn)題。過(guò)了一周左右,重新看ad采集部分的數(shù)據(jù)手冊(cè),發(fā)現(xiàn)如下字句:

          一旦讀出ADCL, ADC 對(duì)數(shù)據(jù)寄存器的尋址就被阻止了。也就是說(shuō),讀取ADCL 之后,即使在讀ADCH 之前又有一次ADC 轉(zhuǎn)換結(jié)束,數(shù)據(jù)寄存器的數(shù)據(jù)也不會(huì)更新,從而保證了轉(zhuǎn)換結(jié)果不丟失。ADCH 被讀出后, ADC 即可再次訪問(wèn)ADCH 及ADCL 寄存器。

          上面一段話意思就是,讀取數(shù)據(jù)時(shí)要先讀ADCL的數(shù)據(jù),然后再度ADCH的數(shù)據(jù),如果順序反過(guò)來(lái),則會(huì)讀取ADCL 之后,即使在讀ADCH 之前又有一次ADC 轉(zhuǎn)換結(jié)束,數(shù)據(jù)寄存器的數(shù)據(jù)也不會(huì)更新。所以問(wèn)題找到了,我的程序就是先讀的ADCH后讀的ADCL,所以再進(jìn)行第二次的AD轉(zhuǎn)換時(shí),數(shù)據(jù)寄存器數(shù)據(jù)沒有更新。讀出的值就是第一次轉(zhuǎn)換的結(jié)果。

          希望大家能夠引以為戒,切記:AVR單片機(jī)AD采集部分,讀結(jié)果數(shù)據(jù)要先讀低字節(jié)(ADCL)后讀高字節(jié)(ADCH)!?。?!

          單片機(jī)相關(guān)文章:單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)視頻教程


          單片機(jī)相關(guān)文章:單片機(jī)工作原理




          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁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); })();