ARM處理器設計的電機電物理量采集系統
1)AD數據采集.A/D轉換的數據可以通過(guò)中斷或查詢(xún)的方式來(lái)訪(fǎng)問(wèn),如果是用中斷方式,全部的轉換時(shí)間(從A/D轉換的開(kāi)始到數據讀出)要更長(cháng),因為中斷服務(wù)程序返回和數據的訪(fǎng)問(wèn)的原因,所以采用查詢(xún)方式不斷檢測ADCCONt3j(轉換結束標志位)來(lái)確定從ADCDAT寄存器讀取的數據是否是最新的轉換數據.
主要代碼有:
#define PRSCVL(206)
#define ADCCON
_
ENABLE_ START(Ox1)
#define STDBM (0x02)
#define PRSCEN(0xll41
void init
_ ADdevice0 //AD設備初始化
{
rADCCON=(PRSCVLlADCCON_ENABLE_STARTISTDBMIPRSCEN);
)
int GetADresuh(int channe1)
{
rADCCON=ADCCON
— ENABLE— START—BYREADI(channel3)IPRSCENIPRSCVL;
while(!frADCCONADCCON—FLAG)); //AD轉換結束
return f0x3ffrADCDATO); //返回采樣值
}
2)數據發(fā)送.異步串行方式是將傳輸數據的每個(gè)字符一位接一位(例如先低位、后高位)地傳送.數據的各不同位可以分時(shí)使用同一傳輸通道,因此串行I/O 可以減少信號連線(xiàn),最少用一對線(xiàn)即可進(jìn)行.接收方對于同一根線(xiàn)上一連串的數字信號,首先要分割成位,再按位組成字符.為了恢復發(fā)送的信息,雙方必須協(xié)調工作.在微型計算機中大量使用異步串行I/O 方式,雙方使用各自的時(shí)鐘信號,而且允許時(shí)鐘頻率有一定誤差。因此實(shí)現較容易.主要代碼有:
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);
評論