在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

            程序的多任務和資源復用舉例

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


            /*---------------------------------------------------------------------------*/
            /*任務一*/
            /**********************************************
            一個部分輸出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;
              }
            }


            /*---------------------------------------------------------------------------*/
            /*任務二*/
            /**********************************************
            一個一直輸出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)鍵詞: 多任務 資源復用

            評論


            相關(guān)推薦

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

            關(guān)閉