新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM處理器設計的電機電物理量采集系統

        ARM處理器設計的電機電物理量采集系統

        作者: 時間:2010-12-13 來源:網絡 收藏

        1)AD數據.A/D轉換的數據可以通過中斷或查詢的方式來訪問,如果是用中斷方式,全部的轉換時間(從A/D轉換的開始到數據讀出)要更長,因為中斷服務程序返回和數據的訪問的原因,所以采用查詢方式不斷檢測ADCCONt3j(轉換結束標志位)來確定從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)數據發送.異步串行方式是將傳輸數據的每個字符一位接一位(例如先低位、后高位)地傳送.數據的各不同位可以分時使用同一傳輸通道,因此串行I/O 可以減少信號連線,最少用一對線即可進行.接收方對于同一根線上一連串的數字信號,首先要分割成位,再按位組成字符.為了恢復發送的信息,雙方必須協調工作.在微型計算機中大量使用異步串行I/O 方式,雙方使用各自的時鐘信號,而且允許時鐘頻率有一定誤差。因此實現較容易.主要代碼有:

        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);



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 江川县| 蛟河市| 岳普湖县| 怀安县| 濮阳市| 历史| 金坛市| 雷波县| 阜城县| 沙田区| 平邑县| 塔城市| 平陆县| 海淀区| 嘉禾县| 柘城县| 上思县| 凤凰县| 佛山市| 长沙市| 雷州市| 马鞍山市| 富裕县| 和政县| 崇阳县| 镶黄旗| 广东省| 兴宁市| 凌海市| 敦煌市| 邻水| 天津市| 盖州市| 股票| 西贡区| 抚州市| 阆中市| 潞城市| 固阳县| 潢川县| 蒙城县|