新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ARM處理器設(shè)計(jì)的電機(jī)電物理量采集系統(tǒng)

ARM處理器設(shè)計(jì)的電機(jī)電物理量采集系統(tǒng)

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

1)AD數(shù)據(jù).A/D轉(zhuǎn)換的數(shù)據(jù)可以通過(guò)中斷或查詢的方式來(lái)訪問(wèn),如果是用中斷方式,全部的轉(zhuǎn)換時(shí)間(從A/D轉(zhuǎn)換的開(kāi)始到數(shù)據(jù)讀出)要更長(zhǎng),因?yàn)橹袛喾?wù)程序返回和數(shù)據(jù)的訪問(wèn)的原因,所以采用查詢方式不斷檢測(cè)ADCCONt3j(轉(zhuǎn)換結(jié)束標(biāo)志位)來(lái)確定從ADCDAT寄存器讀取的數(shù)據(jù)是否是最新的轉(zhuǎn)換數(shù)據(jù).

主要代碼有:

#define PRSCVL(206)

#define ADCCON

_

ENABLE_ START(Ox1)

#define STDBM (0x02)

#define PRSCEN(0xll41

void init

_ ADdevice0 //AD設(shè)備初始化

{

rADCCON=(PRSCVLlADCCON_ENABLE_STARTISTDBMIPRSCEN);

)

int GetADresuh(int channe1)

{

rADCCON=ADCCON

— ENABLE— START—BYREADI(channel3)IPRSCENIPRSCVL;

while(!frADCCONADCCON—FLAG)); //AD轉(zhuǎn)換結(jié)束

return f0x3ffrADCDATO); //返回采樣值

}

2)數(shù)據(jù)發(fā)送.異步串行方式是將傳輸數(shù)據(jù)的每個(gè)字符一位接一位(例如先低位、后高位)地傳送.?dāng)?shù)據(jù)的各不同位可以分時(shí)使用同一傳輸通道,因此串行I/O 可以減少信號(hào)連線,最少用一對(duì)線即可進(jìn)行.接收方對(duì)于同一根線上一連串的數(shù)字信號(hào),首先要分割成位,再按位組成字符.為了恢復(fù)發(fā)送的信息,雙方必須協(xié)調(diào)工作.在微型計(jì)算機(jī)中大量使用異步串行I/O 方式,雙方使用各自的時(shí)鐘信號(hào),而且允許時(shí)鐘頻率有一定誤差。因此實(shí)現(xiàn)較容易.主要代碼有:

int Uart_

Init(int whichUart,int baud)

{

if(whichUaxt>=NumberOfUartDrv)

return FALSE;

return serial_

drv[whichUart]->init(baud);

}

int Uart_ SendByte(int whichUart,int data)

{

if(whichUart>=NumberOfUartDrv)

return FALS E;

return serial— .drv[whichUart]->write(data);



評(píng)論


相關(guān)推薦

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

關(guān)閉