<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ARM平臺的MEMS輸入設備的固件設計

          基于ARM平臺的MEMS輸入設備的固件設計

          作者: 時間:2009-09-22 來源:網(wǎng)絡 收藏

            2.遠端子系統(tǒng)

            遠端子系統(tǒng)的主要任務是加速度計信號的采集,信號的放大、濾波等的處理,控制器 對射頻無線發(fā)送的軟件控制。主要的實現(xiàn)過程為:使用GPIO 口,并按照一定的采樣頻率將 加速度信號送入微控制器LPC2214,在LPC2214 內(nèi)部進行信號放大和A/D 轉(zhuǎn)換;并且按照 無線傳輸模塊定義的格式將數(shù)據(jù)進行編碼,再通過GPIO 口傳送給無線射頻模塊。 主程序主要實現(xiàn)各個器件的初始化和任務的調(diào)用。

            int main(void)

            {

            TargetInit();

            Init_RF();

            Init_ADC();

            Init_Transmitter();

            TaskMouse();

            return 0;

            }

            在完成各個模塊的初始化之后,執(zhí)行Taskmouse 函數(shù)。Taskmouse 函數(shù)是主執(zhí)行函數(shù), 包含了GetMousePos()、ModeSelect()、Get_ADCValue_X()和Get_ADCValue_Y()等子函數(shù)。 調(diào)用該函數(shù)就可以執(zhí)行加速度計信號采集、鼠標位置確定、系統(tǒng)工作模式選擇等程序行。 獲取鼠標位置信息的示意程序如下所示:

            void GetMousePos(uint8 *buf, uint8 shift)

            {

            uint8 i;

            uint8 sampf = 50;

            uint32 dpi = 100;

            uint32 sum_x, sum_y;

            sum_x = sum_y = 0;

            for (i = 0; i sampf; ++i) {

            sum_x += Get_ADCValue_X(dpi);

            sum_y += Get_ADCValue_Y(dpi); }

            buf[0] = (sum_x / sampf) >> shift;

            buf[1] = (sum_y / sampf) >> shift;

            }

            3.主機端子系統(tǒng)

            在主機端子系統(tǒng)中,NRF2401 接受遠端子系統(tǒng)的數(shù)據(jù)并從I/O 口進入LPC2214,數(shù)據(jù)通 過協(xié)議等處理為鼠標格式,最后通過USB 接口發(fā)送給主機。在該模塊中,我們采用了操作 系統(tǒng)來實現(xiàn)多任務處理。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();