|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請教LPC2210中ADC的BURST轉(zhuǎn)換模式問題。 |
| 作者:cd_keanu 欄目:ARM技術(shù) |
拿到2200開發(fā)實(shí)驗(yàn)板有一段時(shí)間了,最近想試試ADC的BURST模式到底是怎么回事,但是運(yùn)行起來問題多多。還望大家多指點(diǎn)一下啊~~~~:( 具體是這樣的:設(shè)置開發(fā)板上的AIN0~1進(jìn)入BURST模式,進(jìn)行AD轉(zhuǎn)換,我試圖在中斷處理程序中,用一個(gè)數(shù)組ADCData[ADCChannel]來保存ADDR的值。但是調(diào)試起來卻很奇怪。用DebugInExRam模式,在中斷處理程序的最后設(shè)置斷點(diǎn),然后全速運(yùn)行。此時(shí)觀察ADCData[ADCChannel]值,發(fā)現(xiàn)數(shù)組中保存的通道沒有規(guī)律,就是ADCData[0]保存的有可能是通道0的值0xc0004dc0或者通道1的值0xc1009b00,ADCData[1]也一樣。 如果在中斷處理程序中不設(shè)置斷點(diǎn),程序全速運(yùn)行,通道倒是對了,但結(jié)果更奇怪。ADCData[0]的值居然是0xc0009b00,ADCData[1]的值是0xc1009b00。而ADCChannel的值最后始終是1。 真是讓我非常郁悶啊~~~~周工救我~~! 相關(guān)代碼如下: /**************************************************************************** * 名稱:ADCIRQ() * 功能:ADC中斷服務(wù)程序函數(shù) * 入口參數(shù):無。 * 出口參數(shù):無。 * 全局變量:ADCChannel ADC通道號 * ADCData[] ADC結(jié)果緩存數(shù)組 ****************************************************************************/ void __irq ADCIRQ() { ADCData[ADCChannel] = ADDR; //讀取AD轉(zhuǎn)換結(jié)果 if ((++ADCChannel) > 1) { ADCChannel = 0; //恢復(fù)ADC通道為0 ADCR = ADCR & 0xFFFEFF03; //停止BURST模式 } VICVectAddr = 0; } 主函數(shù)中的ADC設(shè)置代碼: ADCR = (0x03 << 0) | // SEL = 0x03 ,選擇通道0~1 ((Fpclk / 1000000 - 1) << 8) | // CLKDIV = Fpclk / 1000000 - 1 ,即轉(zhuǎn)換時(shí)鐘 為1MHZ (1 << 16) | // BURST = 1 ,啟用BURST模式 (0 << 17) | // CLKS = 0 ,使用11clock轉(zhuǎn)換 (1 << 21) | // PDN = 1 , 正常工作模式(非掉電轉(zhuǎn)換模式) (0 << 22) | // TEST1:0 = 00 ,正常工作模式(非測試模式) (0 << 24) | // START = 0 ,不軟件啟動ADC轉(zhuǎn)換 (0 << 27); // EDGE = 0 (CAP/MAT引腳下降沿觸發(fā)ADC轉(zhuǎn)換),未使用。 * - 本貼最后修改時(shí)間:2005-3-10 23:36:38 修改者:cd_keanu |
| 2樓: | >>參與討論 |
| 作者: cd_keanu 于 2005/3/11 18:54:00 發(fā)布:
自己頂 ADDR中的24~26位,CHN是不是就是AD轉(zhuǎn)換通道的指示?感覺應(yīng)該是吧!禔RM與嵌入式系統(tǒng)基礎(chǔ)教程》上面寫的是:“這些位包含的是LS位的轉(zhuǎn)換通道”。不清不楚的,應(yīng)該是轉(zhuǎn)換通道哦。 BURST模式到底怎么用?可以用中斷讀取結(jié)果嘛?大家給點(diǎn)意見吧 |
|
| 3樓: | >>參與討論 |
| 作者: whq71 于 2005/7/21 11:49:00 發(fā)布:
請教 請問BURST=1時(shí),置 START = 0 ,不軟件啟動ADC轉(zhuǎn)換 那么ADC如何啟動?若置START=001可以啟動否?這個(gè)ADC好傷腦筋! |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |