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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 虛擬示波器的數(shù)據(jù)采集器解析方案

          虛擬示波器的數(shù)據(jù)采集器解析方案

          作者: 時(shí)間:2012-05-08 來源:網(wǎng)絡(luò) 收藏

          三、軟件設(shè)計(jì)

          單片機(jī)端軟件:

          單片機(jī)端軟件主要完成控制、數(shù)據(jù)報(bào)告這兩個(gè)功能。其中控制根據(jù)計(jì)算機(jī)端軟件設(shè)定的增益、時(shí)基、觸發(fā)等參數(shù)控制模塊,這里面要用到計(jì)算機(jī)向單片機(jī)發(fā)送少量的控制信息;數(shù)據(jù)報(bào)告功能則需要單片機(jī)將緩存中的一個(gè)采集周期的所有數(shù)據(jù)傳送給計(jì)算機(jī)端軟件,這屬于大批量數(shù)據(jù)的傳輸。我們把介紹的重點(diǎn)放在單片機(jī)與計(jì)算機(jī)的通信上面。

          單片機(jī)與計(jì)算機(jī)通信是通過對(duì)CH371的寄存器操作實(shí)現(xiàn)的,有關(guān)其寄存器定義的具體情況請(qǐng)參考數(shù)據(jù)手冊(cè)。

          在應(yīng)用中需要注意的是,CH371提供的單片機(jī)接收緩沖區(qū)為8個(gè)字節(jié),多于8個(gè)字節(jié)的計(jì)算機(jī)下傳數(shù)據(jù)被切分;而單片機(jī)的發(fā)送緩沖區(qū)也是8個(gè)字節(jié),多于8個(gè)字節(jié)的上傳數(shù)據(jù)需要分多次上傳。另外,CH371的中斷包括了上傳及接受成功,中斷發(fā)生后具體的情況需要由傳輸狀態(tài)寄存器來辨別;同時(shí)其中斷電平是單穩(wěn)態(tài)的,一個(gè)事件發(fā)生后中斷信號(hào)跳變,但僅維持一個(gè)短暫的脈沖便恢復(fù),這是為了配合不同速度的處理器而作的處理。

          單片機(jī)與計(jì)算機(jī)的USB通信主要功能子程序示例如下:(請(qǐng)?jiān)谑褂脮r(shí)加入CH371的相應(yīng)寄存器的地址定義)

          file://********** CH371初始化程序******************************

          void ch371_init()

          {

          CH371_INT_SET=0; file://CH371中斷數(shù)據(jù)設(shè)定寄存器的地址偏移

          CH371_LENGTH=0X0F; file://置上傳數(shù)據(jù)長(zhǎng)度寄存器為15,表示暫時(shí)沒有數(shù)據(jù)上傳

          save_length=0; file://保存下傳數(shù)據(jù)長(zhǎng)度

          IT0=1; file://外部信號(hào)為下降沿觸發(fā)

          IE0=0; file://清中斷標(biāo)志

          PX0=1; file://置高優(yōu)先級(jí)

          EX0=1; file://允許中斷

          }

          file://***********上傳數(shù)據(jù)子程序********************************

          void ch371_upload(unsigned char len) file://參數(shù)傳入數(shù)據(jù)長(zhǎng)度

          {

          unsigned char i;

          unsigned char *up_buf;

          unsigned char *ch371_buf;

          if(len!=0)

          {

          up_buf=ret_buffer; file://指向數(shù)據(jù)的地址

          ch371_buf=CH371_BUFFER; file://指向數(shù)據(jù)緩沖區(qū)

          for(i=0;i{

          *ch371_buf=*up_buf; file://寫入上傳數(shù)據(jù)緩沖區(qū)

          ch371_buf++; up_buf++;

          }

          }

          CH371_LENGTH=len; file://寫入本次數(shù)據(jù)的長(zhǎng)度

          }

          c++相關(guān)文章:c++教程


          晶振相關(guān)文章:晶振原理


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();