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

          新聞中心

          單片機(jī)RTOS隨想曲

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

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

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