|
|||||||||||
| 技術(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 |
向C51高手門(mén)請(qǐng)教 |
| 作者:xuetian110 欄目:技術(shù)交流 |
小弟向高手請(qǐng)教,這是一段AD7328采集程序,下面的程序是采集完8路后,判斷有沒(méi)有負(fù)數(shù),但我沒(méi)看明白為什么這么編,有哪位大蝦能給我將講嗎?最好詳細(xì)點(diǎn),小弟第感激不禁 for(chl=0;chl<8;chl++) { if(DC_data1[chl]&0x1000) { DC_data1[chl]-=0x0001; DC_data1[chl]=~DC_data1[chl]; DC_data1[chl]&=0x0fff; DC_data1[chl]=(-DC_data1[chl]); } } DC_data[0]=DC_data1[0]; DC_data[1]=DC_data1[1]; DC_data[2]=DC_data1[4]; DC_data[3]=DC_data1[5]; DC_data[4]=DC_data1[7]; DC_data[5]=DC_data1[6]; DC_data[6]=DC_data1[3]; DC_data[7]=DC_data1[2]; each_volt(); 主要是這一塊: if(DC_data1[chl]&0x1000) { DC_data1[chl]-=0x0001; DC_data1[chl]=~DC_data1[chl]; DC_data1[chl]&=0x0fff; DC_data1[chl]=(-DC_data1[chl]); } * - 本貼最后修改時(shí)間:2007-1-6 11:37:11 修改者:xuetian110 |
| 2樓: | >>參與討論 |
| 作者: 沈老 于 2007/1/6 21:58:00 發(fā)布:
13位補(bǔ)碼 ADC通常有2種輸出編碼,1.偏移2進(jìn)制碼,2.2進(jìn)制補(bǔ)碼.AD7328輸出2進(jìn)制補(bǔ)碼. 2進(jìn)制補(bǔ)碼的特點(diǎn)是正數(shù)等于原碼,負(fù)數(shù)等于反碼+1. if(DC_data1[chl]&0x1000)//負(fù)數(shù) { DC_data1[chl]-=0x0001;//=+1 DC_data1[chl]=~DC_data1[chl];//反碼 DC_data1[chl]&=0x0fff;//取12位值 DC_data1[chl]=(-DC_data1[chl]);//加上符號(hào),變成16位int } |
|
| 3樓: | >>參與討論 |
| 作者: xuetian110 于 2007/1/10 8:36:00 發(fā)布:
真是感謝啊 有道理,真是高手啊!謝謝了 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |