亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 2_01_10i.c

?? 基于時(shí)間觸發(fā)調(diào)度器的直流電機(jī)閉環(huán)控制
?? C
字號(hào):
/*------------------------------------------------------------------*-

   2_01_10i.c (v1.00)

  ------------------------------------------------------------------

   *** THIS IS A SCHEDULER FOR 80C515C (etc.) ***
   *** For use in single-processor applications  ***

   *** Uses T2 for timing, 16-bit auto reload ***

   *** This version assumes 10 MHz crystal on 515c ***
   *** 1 ms (approx) tick interval ***

   *** Includes display of error codes ***


   COPYRIGHT
   ---------

   This code is from the book:

   PATTERNS FOR TIME-TRIGGERED EMBEDDED SYSTEMS by Michael J. Pont 
   [Pearson Education, 2001; ISBN: 0-201-33138-1].

   This code is copyright (c) 2001 by Michael J. Pont.
 
   See book for copyright details and other information.

-*------------------------------------------------------------------*/

#include "Main.h"
#include "2_01_10i.H"

// ------ Public variable declarations -----------------------------

// The array of tasks (see Sch51.C)
extern sTask SCH_tasks_G[SCH_MAX_TASKS];

// Used to display the error code
// See Main.H for details of error codes
// See Port.H for details of the error port
extern tByte Error_code_G;

/*------------------------------------------------------------------*-

  SCH_Init_T2()

  Scheduler initialisation function.  Prepares scheduler data 
  structures and sets up timer interrupts at required rate.
  Must call this function before using the scheduler.  

-*------------------------------------------------------------------*/
void SCH_Init_T2(void) 
   {
   tByte i;

   // Sort out the tasks
   for (i = 0; i < SCH_MAX_TASKS; i++) 
      {
      SCH_Delete_Task(i);
      }

   // Reset the global error variable
   // - SCH_Delete_Task() will generate an error code, 
   //   (because the task array is empty)
   Error_code_G = 0;

   // Now set up Timer 2
   // 16-bit timer function with automatic reload
   // Crystal is assumed to be 10 MHz
   // Using c515c, so timer can be incremented at 1/6 crystal frequency
   // if prescalar is not used

   // Prescaler not used -> Crystal/6
   T2PS = 0;

   // The Timer 2 resolution is  0.0000006 seconds (0.6 祍)
   // The required Timer 2 overflow is 0.001 seconds (1 ms)
   // - this takes  1666.666666667 timer ticks (can't get precise timing)
   // Reload value is 65536 - 1667 = 63869 (dec) = 0xF97D
   TH2 = 0xF9; 
   TL2 = 0x7D;
     
   // Compare/capture Channel 0 
   // Disabled
   // Compare Register CRC on: 0x0000;
   CRCH = 0xF9;
   CRCL = 0x7D;

   //  Mode 0 for all channels
   T2CON |= 0x11;

   //  timer 2 overflow interrupt is enabled
   ET2 = 1;
   //  timer 2 external reload interrupt is disabled
   EXEN2 = 0;
  
   //  CC0/ext3 interrupt is disabled
   EX3 = 0;
  
   // Compare/capture Channel 1-3 
   // Disabled
   CCL1 = 0x00;
   CCH1 = 0x00;
   CCL2 = 0x00;
   CCH2 = 0x00;
   CCL3 = 0x00;
   CCH3 = 0x00;
  
   // Interrupts Channel 1-3 
   // Disabled
   EX4 = 0;
   EX5 = 0;
   EX6 = 0;
  
   // all above mentioned modes for Channel 0 to Channel 3 
   CCEN = 0x00;
   // ------ Set up Timer 2 (end) ----------------------------------
   }

/*------------------------------------------------------------------*-

  SCH_Start()

  Starts the scheduler, by enabling interrupts.

  NOTE: Usually called after all regular tasks are added,
  to keep the tasks synchronised.

  NOTE: ONLY THE SCHEDULER INTERRUPT SHOULD BE ENABLED!!! 
 
-*------------------------------------------------------------------*/
void SCH_Start(void) 
   {
   // Comment out as required, depending on compiler used
   //EA = 1;   // Use with C51 v5.X
   EAL = 1;  // Use with C51 v6.X
   }

/*------------------------------------------------------------------*-
  
  SCH_Update()

  This is the scheduler ISR.  It is called at a rate determined by 
  the timer settings in SCH_Init_T2().  This version is 
  triggered by Timer 2 interrupts: timer is automatically reloaded.
 
-*------------------------------------------------------------------*/
void SCH_Update(void) interrupt INTERRUPT_Timer_2_Overflow  
   {
   tByte Index;

   TF2 = 0; // Have to manually clear this. 

   // NOTE: calculations are in *TICKS* (not milliseconds)
   for (Index = 0; Index < SCH_MAX_TASKS; Index++)
      {
      // Check if there is a task at this location
      if (SCH_tasks_G[Index].pTask)
         {
         if (SCH_tasks_G[Index].Delay == 0)
            {
            // The task is due to run
            SCH_tasks_G[Index].RunMe += 1;  // Incr. the run flag

            if (SCH_tasks_G[Index].Period)
               {
               // Schedule periodic tasks to run again
               SCH_tasks_G[Index].Delay = SCH_tasks_G[Index].Period;
               }
            }
         else
            {
            // Not yet ready to run: just decrement the delay 
            SCH_tasks_G[Index].Delay -= 1;
            }
         }         
      }
   }   

/*------------------------------------------------------------------*-
  ---- END OF FILE -------------------------------------------------
-*------------------------------------------------------------------*/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久美女毛片| 欧美伊人精品成人久久综合97| 911精品产国品一二三产区| 亚洲一区二区美女| 欧美日韩亚洲丝袜制服| 天堂久久久久va久久久久| 欧美亚洲尤物久久| 午夜精品福利一区二区三区蜜桃| 欧美日韩成人在线一区| 美国av一区二区| 精品美女在线观看| 高清成人免费视频| 中文字幕佐山爱一区二区免费| 一本色道久久综合亚洲91| 亚洲一区成人在线| 日韩欧美一级片| 成人av综合在线| 亚洲国产成人av网| 精品日韩成人av| gogogo免费视频观看亚洲一| 依依成人综合视频| 日韩亚洲欧美高清| 国产东北露脸精品视频| 亚洲精品视频免费看| 4438成人网| 成人三级伦理片| 亚洲精品成a人| 精品久久久久久无| 一本大道久久a久久综合| 日韩国产成人精品| 亚洲国产精品v| 欧美久久久久久久久| 国产精品主播直播| 亚洲夂夂婷婷色拍ww47| 久久综合久久综合亚洲| 91福利视频在线| 国产麻豆午夜三级精品| 亚洲一区二区三区在线看| 亚洲精品一区二区三区精华液| 91蜜桃免费观看视频| 蜜桃在线一区二区三区| 日韩美女啊v在线免费观看| 精品区一区二区| 欧美专区日韩专区| 成人美女视频在线看| 蜜臀av一区二区| 亚洲在线视频网站| 国产精品久久久久一区二区三区| 91精品国产丝袜白色高跟鞋| 成人高清视频免费观看| 久久精品国产一区二区| 亚洲综合久久久久| 国产精品不卡一区| 国产欧美一二三区| 亚洲精品一区二区三区香蕉| 欧美日韩中文字幕精品| 波多野洁衣一区| 久国产精品韩国三级视频| 亚洲在线视频免费观看| 成人欧美一区二区三区白人| 久久综合久久综合久久综合| 91麻豆精品国产| 欧美性大战久久久久久久蜜臀| 国产激情一区二区三区桃花岛亚洲| 日韩av电影免费观看高清完整版在线观看| 国产精品传媒入口麻豆| 亚洲国产成人午夜在线一区 | 成人午夜电影网站| 久久精品国产亚洲a| 亚洲午夜激情网页| 亚洲男人的天堂在线aⅴ视频| 26uuu国产在线精品一区二区| 欧美一级搡bbbb搡bbbb| 欧美日韩第一区日日骚| 欧美在线观看视频一区二区| 成人综合在线网站| 国产麻豆一精品一av一免费| 国模冰冰炮一区二区| 麻豆国产精品一区二区三区| 免费欧美在线视频| 蜜桃视频免费观看一区| 久久精品二区亚洲w码| 蜜桃视频在线观看一区| 精品一区二区三区在线播放视频| 午夜视黄欧洲亚洲| 日本不卡1234视频| 久久99久国产精品黄毛片色诱| 青青草国产成人av片免费| 美女视频一区在线观看| 韩国精品主播一区二区在线观看| 狠狠v欧美v日韩v亚洲ⅴ| 国产乱人伦偷精品视频免下载 | 国产一区二区视频在线播放| 国产精品综合在线视频| 成人少妇影院yyyy| 欧美性受极品xxxx喷水| 欧美一卡二卡在线| 久久久影院官网| 亚洲欧美日韩国产一区二区三区| 一区二区视频在线| 五月激情综合网| 久久99久久精品欧美| 成人免费三级在线| 欧美日韩亚洲综合一区| 精品精品国产高清a毛片牛牛| 国产午夜精品一区二区| 夜夜亚洲天天久久| 麻豆视频观看网址久久| 不卡一卡二卡三乱码免费网站| 色婷婷综合激情| 欧美精品乱人伦久久久久久| 精品国产青草久久久久福利| 中文字幕av在线一区二区三区| 亚洲图片有声小说| 卡一卡二国产精品| av在线不卡网| 在线综合+亚洲+欧美中文字幕| 久久久久久久综合日本| 一区二区三区欧美在线观看| 久久精品国产第一区二区三区| 成人动漫一区二区| 欧美一区二区视频在线观看2022| 国产日韩欧美电影| 日本特黄久久久高潮| 韩国女主播成人在线观看| 在线免费不卡视频| 久久先锋影音av鲁色资源网| 一区二区三区四区国产精品| 国产一区二区三区精品欧美日韩一区二区三区 | 美国十次了思思久久精品导航| 国产宾馆实践打屁股91| 欧美日韩在线播放一区| 国产偷v国产偷v亚洲高清| 亚洲国产视频网站| 国产成人精品综合在线观看| 制服丝袜中文字幕一区| 亚洲精品视频在线观看网站| 国产一区二区女| 日韩一区二区三区免费看 | 亚洲欧美在线aaa| 久久er99精品| 欧美妇女性影城| 一区二区三区中文在线观看| 国产99久久久国产精品| 欧美一区二区三区影视| 亚洲图片欧美色图| 91同城在线观看| 国产精品久久久一本精品| 狠狠色综合日日| 91.麻豆视频| 一级女性全黄久久生活片免费| 国产成人高清视频| 欧美成人女星排名| 日韩av一二三| 91精品在线一区二区| 亚洲精品国产无天堂网2021 | 亚洲日本在线观看| 成人黄色免费短视频| 国产亚洲综合av| 国产麻豆精品在线| 久久综合狠狠综合久久综合88 | 99久久综合狠狠综合久久| 久久精品视频一区二区| 精品一区二区免费| 欧美电影免费观看高清完整版在 | 精品1区2区在线观看| 麻豆免费精品视频| 精品久久久久久综合日本欧美 | 精品国产乱码久久久久久图片| 同产精品九九九| 欧美精选一区二区| 亚州成人在线电影| 欧美在线不卡视频| 一区二区三区免费在线观看| 91蝌蚪porny| 亚洲第一在线综合网站| 欧美精品自拍偷拍动漫精品| 日韩国产一二三区| 日韩一区二区三区四区五区六区| 玖玖九九国产精品| 国产三级一区二区三区| 国产91丝袜在线播放九色| 国产目拍亚洲精品99久久精品| 粉嫩一区二区三区性色av| 亚洲日本青草视频在线怡红院| 色就色 综合激情| 亚洲成av人影院| 精品国产乱码久久久久久久久| 国产一区亚洲一区| 亚洲精品乱码久久久久久日本蜜臀| 91论坛在线播放| 日韩精品欧美精品| 精品国内二区三区| caoporn国产精品| 亚洲成a人片在线观看中文| 日韩欧美色综合网站| 国产91丝袜在线观看| 亚洲综合图片区| 精品久久国产字幕高潮| 99精品视频一区二区|