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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 2_01_12g.c

?? 51系列具有PWM斷口的單片機PWM調制程序.
?? C
字號:
/*------------------------------------------------------------------*-

   2_01_12g.C (v1.00) 

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

   *** THIS IS A SCHEDULER FOR STANDARD 8051 / 8052 ***

   *** Uses T2 for timing, 16-bit auto reload ***
   *** 12 MHz oscillator -> 1 ms (precise) tick interval ***


   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 "2_01_12g.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.

  You must call this function before using the scheduler.  

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

   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 12 MHz
   // The Timer 2 resolution is 0.000001 seconds (1 祍)
   // The required Timer 2 overflow is 0.001 seconds (1 ms)
   // - this takes 1000 timer ticks
   // Reload value is 65536 - 1000 = 64536 (dec) = 0xFC18

   T2CON = 0x04;   // load Timer 2 control register
   T2MOD = 0x00;   // load Timer 2 mode register

   TH2    = 0xFC;  // load timer 2 high byte
   RCAP2H = 0xFC;  // load timer 2 reload capture reg, high byte
   TL2    = 0x18;  // load timer 2 low byte
   RCAP2L = 0x18;  // load timer 2 reload capture reg, low byte
   
   ET2   = 1;  // Timer 2 interrupt is enabled

   TR2   = 1;  // Start Timer 2
   }


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

  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) 
   {
   EA = 1;
   }

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

  SCH_Update()

  This is the scheduler ISR.  It is called at a rate 
  determined by the timer settings in the 'init' function.

  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;  // Inc. the 'RunMe' flag

            if (SCH_tasks_G[Index].Period)
               {
               // Schedule regular 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 -------------------------------------------------
-*------------------------------------------------------------------*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人福利视频网站| 国产一区二区三区观看| 亚洲国产精品精华液2区45| 欧美一区二区三区免费观看视频| 99久久精品国产精品久久| 国产成人在线色| 国产精品白丝av| 国产麻豆日韩欧美久久| 精品一区二区综合| 国产在线麻豆精品观看| 国产黄色成人av| 高清在线不卡av| 91蝌蚪porny成人天涯| 99视频在线观看一区三区| 97精品久久久久中文字幕| 色先锋资源久久综合| 91国产福利在线| 日韩一区二区高清| 精品粉嫩aⅴ一区二区三区四区| 精品99999| 国产精品色哟哟| 亚洲自拍都市欧美小说| 婷婷一区二区三区| 国产乱淫av一区二区三区| 成人午夜看片网址| 色猫猫国产区一区二在线视频| 一本大道久久a久久综合| 92精品国产成人观看免费| 91丝袜美女网| 日韩女优毛片在线| 精品三级在线观看| 久久久久久久久久久久久夜| 久久久精品蜜桃| 一区二区三区自拍| 日本美女视频一区二区| 韩日精品视频一区| 91丨porny丨蝌蚪视频| 精品视频一区二区三区免费| 欧美不卡一区二区| 国产精品理论片| 亚洲大型综合色站| 成人一区在线观看| 欧美日韩免费视频| 久久久久综合网| 一区二区三区久久| 精品一区二区三区在线观看| www.日韩精品| 欧美一区二区日韩| 国产精品午夜春色av| 亚洲一区二区三区不卡国产欧美 | 奇米888四色在线精品| 国产美女精品一区二区三区| 成人丝袜高跟foot| 欧美精品视频www在线观看| 精品国产乱码久久| 亚洲精品欧美在线| 国产福利不卡视频| 欧美美女喷水视频| 18涩涩午夜精品.www| 美国十次了思思久久精品导航| 成人精品视频一区| 欧美一区国产二区| 一卡二卡欧美日韩| 成人深夜在线观看| 精品久久久久久久久久久久包黑料| 日韩美女久久久| 国产精品一区二区三区乱码 | 一区二区三区在线免费视频| 国产在线看一区| 欧美一区二区福利在线| 亚洲欧美一区二区三区极速播放| 国内外成人在线| 日韩欧美一级在线播放| 亚洲国产一区二区在线播放| 成人精品免费看| 久久综合狠狠综合久久激情| 午夜影院在线观看欧美| 色综合亚洲欧洲| 国产精品灌醉下药二区| 国产福利一区在线| 久久人人超碰精品| 九色综合狠狠综合久久| 91精品国产色综合久久ai换脸 | 久久久久国产精品麻豆| 免费在线观看日韩欧美| 欧美美女一区二区三区| 亚洲国产欧美另类丝袜| 色婷婷久久99综合精品jk白丝| 国产精品欧美极品| 顶级嫩模精品视频在线看| 久久日韩精品一区二区五区| 精品一区二区三区免费播放| 精品成人在线观看| 国产一区三区三区| 国产精品久久久久久久久图文区 | 99re66热这里只有精品3直播 | 亚洲一区二区精品3399| 欧美三级电影在线观看| 亚洲电影欧美电影有声小说| 欧美精品一级二级| 日韩电影在线观看网站| 久久久91精品国产一区二区精品| 午夜精品福利一区二区三区av| 欧美特级限制片免费在线观看| 亚洲自拍偷拍综合| 日韩欧美一卡二卡| 高清av一区二区| 亚洲男人的天堂在线aⅴ视频| 色综合久久久久综合体桃花网| 亚洲精品免费在线播放| 欧美色涩在线第一页| 天天色天天操综合| 26uuuu精品一区二区| 成人丝袜高跟foot| 亚洲国产欧美在线| 欧美成人bangbros| av中文字幕在线不卡| 亚洲综合一区二区三区| 91精品婷婷国产综合久久性色| 青青草国产成人av片免费| 久久婷婷成人综合色| 93久久精品日日躁夜夜躁欧美| 丝袜亚洲另类欧美| 国产清纯白嫩初高生在线观看91 | 在线不卡一区二区| 国产精品一区二区果冻传媒| 亚洲欧洲中文日韩久久av乱码| 欧美一区午夜视频在线观看| 成人a级免费电影| 免费观看在线综合色| 国产精品麻豆网站| 日韩一区二区视频在线观看| 国产成人精品亚洲午夜麻豆| 亚洲国产成人porn| 久久精品免费在线观看| 一本色道久久综合亚洲91 | 亚洲一级电影视频| 精品欧美久久久| 91久久精品一区二区| 韩国一区二区在线观看| 亚洲一区视频在线| 中文字幕欧美区| 日韩一区二区精品| 欧美色大人视频| 懂色av中文一区二区三区| 蜜桃传媒麻豆第一区在线观看| 亚洲色图欧美偷拍| 久久久久久免费毛片精品| 欧美群妇大交群中文字幕| 东方aⅴ免费观看久久av| 美腿丝袜亚洲三区| 亚洲午夜免费视频| 国产精品久久久久久久久果冻传媒 | 欧美性生活一区| 成人美女视频在线观看| 理论电影国产精品| 亚洲第一搞黄网站| 亚洲夂夂婷婷色拍ww47| 国产精品嫩草影院com| 欧美精品一区二区三区久久久| 精品国产一区a| 日韩视频在线永久播放| 欧美日韩亚洲国产综合| 91浏览器入口在线观看| 国产91精品在线观看| 国产在线精品免费| 久久99精品久久久久久国产越南 | 中文字幕中文在线不卡住| 久久午夜羞羞影院免费观看| 日韩三级电影网址| 日韩久久免费av| 欧美va亚洲va| 亚洲精品在线网站| 久久嫩草精品久久久久| 久久网站热最新地址| 久久亚洲精华国产精华液| 久久色.com| 国产欧美精品一区| 国产精品久久久久aaaa樱花| 欧美国产精品一区| 国产精品国产三级国产a| 亚洲精品中文在线| 亚洲国产wwwccc36天堂| 午夜精品福利一区二区三区蜜桃| 日韩和欧美的一区| 久久99精品久久久久久国产越南| 精品一区二区av| 丰满亚洲少妇av| 91蜜桃免费观看视频| 欧美三级三级三级爽爽爽| 欧美二区三区91| 久久久久久久久久久黄色| 亚洲欧洲精品一区二区三区不卡 | 老司机精品视频在线| 国产成人精品免费看| 91啦中文在线观看| 日韩精品一区二区三区中文不卡| 国产性天天综合网| 一区二区三区久久久| 精品一区二区三区在线视频|