新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于WinCE系統的FIFO數據傳輸程序設計

        基于WinCE系統的FIFO數據傳輸程序設計

        作者: 時間:2012-04-16 來源:網絡 收藏

        當數據采集板通過程序控制方式、定時器觸發方式或外部觸發方式采集到模擬信號后自動進行A/D轉換后將數據放入A/D數據寄存器并依次寫入 緩沖區中,Windows CE.net中的用戶應用程序通過檢測標志寄存器和MIC-2718狀態寄存器(地址為BASE+8)的狀態來確定是否進行了有效的A/D轉換。下面給出在Windows CE開發平臺上對進行讀操作的部分代碼,設MIC-2718的基地址為300H:
        PUCHAR ioPortBase=MapIoSpace(300H);//將物理地址影射為虛擬地址
        BYTE aistatus=READ_PORT_UCHAR(ioPortBase+8);//讀MIC-2718的狀態寄存器
        BYTE status=READ_PORT_UCHAR(ioPortBase+25);//讀FIFO的狀態寄存器
        BYTE ad0,ad1;
        if(aistatus0x10)//若MIC-2718狀態寄存器的A/D轉換位有效
        {
        if(status1!=0)//若FIFO不為空,則讀FIFO
        {
        ad0=READ_PORT_UCHAR(ioPortBase+23);
        ad1=READ_PORT_UCHAR(ioPortBase+24);
        }
        }

        表1 A/D數據寄存器與FIFO數據寄存器的比較
        3.jpg

        在使用MIC-2718的某一通道分別用常規方式和FIFO方式對一個持續變化的電壓源做連續的信號采集和傳輸時,兩種方式傳輸的數據如表1所示。可以看出,第2和第8組中A/D數據寄存器中的數值是錯誤的,可見使用普通A/D傳輸方式存在數據丟失問題,因此并不能準確傳輸數據,而使用FIFO方式可以保證的完整性。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 肇东市| 鹿泉市| 顺昌县| 黔西县| 忻城县| 佛教| 靖西县| 定结县| 新宾| 池州市| 舞阳县| 莲花县| 常德市| 湘潭县| 腾冲县| 瓮安县| 温泉县| 兴安县| 漳平市| 洛南县| 仲巴县| 涟水县| 定襄县| 天祝| 沂水县| 通州区| 武冈市| 尼勒克县| 塘沽区| 宁都县| 鄂伦春自治旗| 通州区| 枣庄市| 荣昌县| 屯门区| 嘉义县| 高碑店市| 屏南县| 永兴县| 禄丰县| 扎囊县|