新聞中心

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 屏山县| 固镇县| 台山市| 苏尼特左旗| 桂林市| 五常市| 黄平县| 北京市| 广德县| 新疆| 社旗县| 特克斯县| 乌鲁木齐县| 正定县| 津南区| 安泽县| 手机| 隆尧县| 曲松县| 古蔺县| 武胜县| 霍邱县| 昔阳县| 剑河县| 吉安县| 阳高县| 陕西省| 长泰县| 岐山县| 高青县| 巴青县| 乌拉特前旗| 措勤县| 文安县| 沂南县| 岑溪市| 宜州市| 红河县| 贡嘎县| 镇雄县| 洛南县|