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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)RTOS隨想曲

          單片機(jī)RTOS隨想曲

          作者: 時間:2012-10-16 來源:網(wǎng)絡(luò) 收藏

          本文標(biāo)為隨想曲,是說明這不是一篇結(jié)構(gòu)嚴(yán)謹(jǐn)?shù)奈恼?而是想到哪寫到哪,希望讀者能喜歡這種風(fēng)格。以下為本文正文:
          對于搞的特別用8051系列工程師來說,談到,很多時候會問一句:“為什么要用?就這一點(diǎn)資源,使用能保證效率嗎?”
          對于這個問題,我會反問:“你用單片機(jī)的目的是什么?是為了用單片機(jī)的,單片機(jī)的匯編編程甚至于用單片機(jī)的二進(jìn)制指令編程?”上個世紀(jì)80年代,工程師用二進(jìn)制指令給Z80編程,現(xiàn)在還有誰在用?現(xiàn)在還有人死抱著匯編不放,但越來越多的人工程師使用(我起初也是使用匯編的),為什么?因為我們的目的是在有限的時間甚至是不充足的時間內(nèi)把項目保質(zhì)保量的完成!使用是么工具和方法是次要的(如果你的項目以成本放在第一位,則另當(dāng)別論,這時,也是要考慮開發(fā)時間的)。時間就是金錢啊,一個產(chǎn)品在單片機(jī)上增加些許成本是可以接受的。況且,使用8051系列單片機(jī)時,單片機(jī)資源也常有富余,CPU一般情況也只是空轉(zhuǎn),這就為它使用RTOS創(chuàng)造了條件。
          那么,使用RTOS的好處呢?我舉一個例子吧。假設(shè)我們編一個串行通訊程序,通訊協(xié)議如下:
          數(shù)據(jù)包長度為NBYTE,起始字節(jié)為STARTBYTE1,STARTBYTE2,最后一個字節(jié)為檢驗和,中間字節(jié)不可能出現(xiàn)連續(xù)出現(xiàn)STARTBYTE1,STARTBYTE2。
          第一種方法,在中斷中處理協(xié)議:

          unsigned char Buf[NBYTE-2];
          bit GetRight=0;
          void comm(void) interrupt 4
          //"串行口中斷"
          {
          static unsigned char Sum,Flag=0,i;
          unsigned char temp;

          if(RI==1)
          {
          RI=0;
          temp=SBUF;
          switch(Flag)
          {
          case 0:
          if(temp==STARTBYTE1)
          {
          Flag=1;
          }
          break;
          case 1:
          if(temp==STARTBYTE2)
          {
          Sum=STARTBYTE1+STARTBYTE2;
          i=0;
          Flag=2;
          break;
          }
          if(temp==STARTBYTE1) break;
          Flag=0;
          break;
          case 2:
          if(temp==STARTBYTE1)
          {
          Flag=3;
          break;
          }
          Sum+=temp;
          if((i>=(NBYTE-3))Sum==0)
          {
          GetRight=1;
          Flag=0;
          break;
          }
          Buf[i++]=temp;
          break;
          case 3:
          if(temp==STARTBYTE2)
          {
          Sum=STARTBYTE1+STARTBYTE2;
          Flag=2;
          i=0;
          break;
          }
          Sum+=STARTBYTE1;
          if((i>=(NBYTE-3))Sum==0)
          {
          GetRight=1;
          Flag=0;
          break;
          }
          Buf[i++]=STARTBYTE1;
          if(temp==STARTBYTE1)
          {
          break;
          }
          Sum+=temp;
          if((i>=(NBYTE-3))Sum==0)
          {
          GetRight=1;
          Flag=0;
          break;
          }
          Buf[i++]=temp;
          Flag=2;
          break;
          }
          }
          }


          上一頁 1 2 下一頁

          關(guān)鍵詞: 單片機(jī) RTOS C編程

          評論


          相關(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); })();