|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
各位高手達(dá)人救命,看看我的AD7705 |
| 作者:jiangnansh 欄目:單片機(jī) |
各位高手達(dá)人救命,看看我的AD7705 補(bǔ)充:就是AD7705調(diào)不出來,INT0中斷一直不出現(xiàn) /*********************************聲明*********************************************************/ 各位高手請(qǐng)救命啊!本人目前正被人陷害,老總現(xiàn)在已經(jīng)認(rèn)為我只回書本知識(shí), 什么都不回做,跟我擺明了說過年之前不能完成項(xiàng)目或調(diào)試出全部功能就淘汰我, 過了年就不用來上班了。我是第一次做這么復(fù)雜的程序,現(xiàn)在液晶,模擬量輸出 和PWM芯片調(diào)制,大電流輸出控制都已經(jīng)調(diào)出來了,就是AD7705調(diào)不出來 ,INT0中斷一直不出現(xiàn) 麻煩各位看看怎么會(huì)事? 以上決非虛構(gòu),我以人格擔(dān)保! /***********************************************************************************************/ /******************************使用環(huán)境*****************************************************/ AD7705用來測(cè)兩路雙極性模擬量,CS接0V,RESET接5V,REF+接2.7V,REF- 接0V,GND接0V,VDD接5V.DRDY接INT0中斷引腳 轉(zhuǎn)換后數(shù)據(jù)為int型。 以下為示意程序,其中還牽涉到端口復(fù)用,已略去 如有消息,請(qǐng)與我聯(lián)系,我的郵箱:jiangnanshanshang@yahoo.com.cn 手機(jī):13814275710 /**********************************************************************************************/ /*******************************AD7705****************************************************/ void ADC_Init(void) { void ADC_Write(UCHAR tempdata); unsigned CHAR i; ADC_CLK=1; ADC_DIN=1; for (i=0;i<40;i++) // AD7705復(fù)位 { ADC_CLK=0; ADC_CLK=1; } ADC_Write(0x20); // 通道1,下一個(gè)寫時(shí)鐘寄存器 ADC_Write(0x14);//(0x04); // 寫時(shí)鐘寄存器設(shè)置更新速率為50Hz? //主時(shí)鐘需要禁止嗎 ADC_Write(0x10); // 通道1,下一個(gè)寫設(shè)置寄存器 ADC_Write(0x42); // 寫設(shè)置寄存器,設(shè)置成自校準(zhǔn)、增益為1、雙極性、有緩沖、濾波器工作(正常,不工 作不正常) //ADC_Write(0x00); // 寫設(shè)置寄存器,設(shè)置成 正常、增益為1、雙極性、無緩沖、濾波器工作(正常,不工 作不正常) delayX10ms(5); //還有通道2 ADC_Write(0x21); // 通道2,下一個(gè)寫時(shí)鐘寄存器 ADC_Write(0x14);//(0x04); // 寫時(shí)鐘寄存器設(shè)置更新速率為50Hz //主時(shí)鐘需要禁止嗎 ADC_Write(0x11); // 通道2,下一個(gè)寫設(shè)置寄存器 ADC_Write(0x42); // 寫設(shè)置寄存器,設(shè)置成自校準(zhǔn)、增益為1、雙極性、有緩沖、濾波器工作(正常,不工 作不正常) //ADC_Write(0x00); // 寫設(shè)置寄存器,設(shè)置成 正常、增益為1、雙極性、無緩沖、濾波器工作(正常,不工 作不正常) delayX10ms(5); //還有通道2 } //*****************************************************/ void ADC_Write(UCHAR tempdata) //寫入8位 { unsigned CHAR i; unsigned CHAR adbyte; unsigned CHAR adtemp; ADC_CLK=1; adtemp=0x80; adbyte=tempdata; for(i=0;i<8;i++) { if (adbyte&adtemp) ADC_DIN=1 ; else ADC_DIN=0 ; ADC_CLK=1; ADC_CLK=0; ADC_CLK=1; adtemp=adtemp>>1; } ADC_CLK=1; ADC_DIN=1; //結(jié)束 } //*************************************************/ int ADC_Read(unsigned CHAR channel) //讀出16位 { int adword; unsigned CHAR i; //注意數(shù)據(jù)的先后次序轉(zhuǎn)換。 ADC_Write(0x38|channel); //設(shè)置讀當(dāng)前通道數(shù)據(jù) //chanel 0 0 1+ 1-; // |
| 2樓: | >>參與討論 |
| 作者: netscaner 于 2006/1/5 20:20:00 發(fā)布:
告訴你對(duì)不起自己,不告訴你又…… 你液晶,模擬量輸出和PWM芯片調(diào)制,大電流輸出控制都已經(jīng)調(diào)出來了,應(yīng)該過年前就能調(diào)出來AD7705了。我剛學(xué)單片機(jī)沒多久就做了用AD7705的數(shù)模采集卡,用了大概一個(gè)月。以你的水平,肯定不用到過年啦。 提示你幾點(diǎn):1、好好看數(shù)據(jù)手冊(cè)。2、每次讀寫寄存器要復(fù)位串口,需要32個(gè)連續(xù)時(shí)鐘周期的邏輯“1”的寫操作,以保證串行接口回到已知狀態(tài)。3、注意檢查硬件電路,一不小心,7705的模擬電路部分就廢了。7705數(shù)字電路部分必須比模擬電路部分先上電,晶振也不要用錯(cuò)哦。 好好看看ad公司的數(shù)據(jù)手冊(cè)、應(yīng)用示例和評(píng)估板的資料吧。 用google好好搜搜。你的代碼還有什么錯(cuò)誤我就不看了,好好和數(shù)據(jù)手冊(cè)上的流程對(duì)照一下,相信你自己,過年前肯定能搞定。 |
|
| 3樓: | >>參與討論 |
| 作者: laoshan 于 2006/1/5 21:27:00 發(fā)布:
耐心點(diǎn),很好調(diào)的! 主要是耐心 和 恒心! |
|
|
|
| 免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |