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

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 基于S3C2440的智能模擬人的控制

          基于S3C2440的智能模擬人的控制

          作者: 時間:2011-02-14 來源:網(wǎng)絡 收藏

          一般情況下,串口通信采用兩種方法:一種方法是利用Windows的通信API函數(shù);另一種方法是利用Visual C++的ActivateX控件。Windo-ws的API函數(shù)使用起來比較靈活,實現(xiàn)通信的效率也是最高,所以系統(tǒng)采用利用Windows的API函數(shù)進行串口通信的開發(fā)。程序中thread_com類對串口操作的WindowsAPI函數(shù)進行了封裝,此類實現(xiàn)了對串口同步接收、異步接收以及線程監(jiān)控模式異步接收。thread_com類的成員函數(shù)如表1所示。

          本文引用地址:http://www.ex-cimer.com/article/187624.htm

          d.JPG


          2.2.2 通氣和按壓功能的實現(xiàn)
          根據(jù)上面所說的情況,可以完成CPR中通氣和按壓功能的實現(xiàn),將ADC驅動燒錄至進行壓力傳感器的信號采集和轉換,由于采用的雙路信號,就需要將壓力傳感器的取值范圍分為兩段,取中值后,設定大于中值時,完成按壓功能響應;小于中值時,完成通氣功能響應;在不對傳感器操作的時候,不響應。在采集到壓力信號的同時,向上位機發(fā)送8位UART數(shù)據(jù),進行按壓和通氣顯示條的操作,具體表現(xiàn)為:當按壓或者通氣值滿足系統(tǒng)設定的條件時(初始狀態(tài)為藍色),按壓或通氣條顯示綠色,否則為紅色。具體如圖4所示。

          e.JPG

          3 功能實現(xiàn)過程中遇到的問題
          可以很好地滿足設計功能需求,顯示效果也比較滿意,但是在具體實現(xiàn)過程中,遇到很多問題,比如,內核自帶的ADC驅動的中斷號和編寫的ADC驅動的中斷號沖突的問題;一些外擴的I/O口已經被占用的問題;與上位機通信過程中,數(shù)據(jù)包的傳輸問題;按壓和同期進度條顯示速率的問題等。通過以下步驟可以很容易地解決這些問題:
          (1)根據(jù)用戶手冊,重新燒錄Bootload時,要對I/O口進行重新配置,使之滿足智能人控制箱的配置需要;
          (2)如果不需要使用觸摸屏的話,可以對S3C2440進行裁剪,卸載ADC觸摸屏驅動;如果仍需要使用觸摸屏,可以改用查詢方式完成功能;
          (3)對上位機和下位機設置同樣的波特率,并建立鏈表,在滿足條件的情況下,再進行數(shù)據(jù)的傳輸,避免傳輸數(shù)據(jù)有誤造成的功能顯示問題;
          (4)對按壓和通氣進度條的傳輸數(shù)據(jù)進行參數(shù)調整,同時結合上位機的參數(shù)進行調試,設置加權系數(shù),可以完善進度條顯示速率問題。

          4 結語
          主要討論了用S3C2440開發(fā)智能人控制箱和按壓通氣功能的實現(xiàn),并介紹了上位機與下位機的通信,對在此過程中遇到的中斷號沖突,進度條顯示速率過慢等問題,也提出了相應的解決的方法。


          上一頁 1 2 3 4 下一頁

          關鍵詞: S3C2440 模擬

          評論


          相關推薦

          技術專區(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); })();