日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 程序的多任務(wù)和資源復(fù)用舉例

          程序的多任務(wù)和資源復(fù)用舉例

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


          /*---------------------------------------------------------------------------*/
          /*任務(wù)一*/
          /**********************************************
          一個部分輸出1HZ的方波,2S后停止。
          **********************************************/
          void Task1_MainLoop()
          {
            switch(mTask1Id){
             case 0:  if(fKey1){
                     fKey1=0;          /*接收該鍵值*/
                     mTask1_1HzReg=500/2;    /*1hz時間寄存器,500ms,以2MS為單位*/
                     mTask1_2SReg=2000/2;    /*2S時間寄存器,500ms,以2MS為單位*/
                     oTask1=0;
                     mTask1Id=1;
                  }
                  break;
             case 1:  if(fSYS_2ms){
                    mTask1_1HzReg--;
                    if(mTask1_1HzReg==0){
                      oTask1=~oTask1;
                      mTask1_1HzReg=500/2;   /*1hz時間寄存器,500ms,以2MS為單位*/
                    }

                    mTask1_2SReg--;
                    if(mTask1_2SReg==0){
                      oTask1=1;        /*2S時間到*/
                      mTask1Id=0;
                    }
                  }
                  break;
            }
          }


          /*---------------------------------------------------------------------------*/
          /*任務(wù)二*/
          /**********************************************
          一個一直輸出1.2hz的方波,直到按鍵再次按
          **********************************************/
          void Task2_MainLoop()
          {
            switch(mTask2Id){
             case 0:  if(fKey2){
                     fKey2=0;          /*接收該鍵值*/
                     mTask2_1p2HzReg=416/2;   /*1hz時間寄存器,832/2ms,以2MS為單位*/
                     oTask2=0;
                     mTask2Id=1;
                  }
                  break;
             case 1:  if(fKey2){
                   fKey2=0;
                   oTask2=1;
                   mTask2Id=0;
                  }
                  else {
                    if(fSYS_2ms){
                      mTask2_1p2HzReg--;
                      if(mTask2_1p2HzReg==0){
                        oTask2=~oTask1;
                        mTask2_1p2HzReg=416/2;  /*1hz時間寄存器,832/2ms,以2MS為單位*/
                      }
                    }
                  }
                  break;
            }
          }

          /*---------------------------------------------------------------------------*/
          /*主程序*/
          void main(){
            Timer0_Init();
            EA=1;

            while(1){
              Timer0_MainLoop();
              Key_MainLoop();
              Task1_MainLoop();
              Task2_MainLoop();
            }
          }


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 多任務(wù) 資源復(fù)用

          評論


          相關(guān)推薦

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

          關(guān)閉