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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tlight_a.c

?? 時(shí)間觸發(fā)嵌入式系統(tǒng)設(shè)計(jì)模式源碼
?? C
字號:
/*------------------------------------------------------------------*-

   TLight_A.C (v1.00)

  ------------------------------------------------------------------
   
   Traffic light control program 

   Simplex version 
   - has no information about bulb status on other node.


   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 "Port.h"

#include "TLight_A.h"

// ------ Private constants ----------------------------------------

// Easy to change logic here
#define ON  0
#define OFF 1

// Times in each of the (four) possible light states
// (Times are in seconds - must call the update task once per second)
//
#define RED_DURATION  (10)
#define RED_AND_AMBER_DURATION  (10)

// NOTE: 
// GREEN_DURATION must equal RED_DURATION
// AMBER_DURATION must equal RED_AND_AMBER_DURATION
#define GREEN_DURATION RED_DURATION 
#define AMBER_DURATION RED_AND_AMBER_DURATION

// Must specify whether this is a MASTER or a SLAVE unit
#define MASTER_SLAVE MASTER

// ------ Private variables ----------------------------------------

// The state of the system
static eLight_State Light_state_G;

// ------ Private function prototypes ------------------------------

bit TRAFFIC_LIGHTS_Check_Local_Bulb(void);

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

  TRAFFIC_LIGHTS_Init()

  Prepare for scheduling.

-*-----------------------------------------------------------------*/
void TRAFFIC_LIGHTS_Init(void)
   {
   // Master and slave must start in opposite states
   if (MASTER_SLAVE == MASTER)
      {
      Light_state_G = RED;
      }
   else
      {
      Light_state_G = GREEN;
      }

   // Display safe output until scheduler starts
   TRAFFIC_LIGHTS_Display_Safe_Output();
   }

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

  TRAFFIC_LIGHTS_Update()

  Must be scheduled once per second.

-*------------------------------------------------------------------*/
void TRAFFIC_LIGHTS_Update(void)
   {
   static tWord Time_in_state;

   // Check for blown bulbs on this node
   TRAFFIC_LIGHTS_Check_Local_Bulb();

   // This is the main update code
   switch (Light_state_G)
      {
      case RED: 
         {
         Red_light = ON;
         Amber_light = OFF;
         Green_light = OFF;

         if (++Time_in_state == RED_DURATION)
            {
            Light_state_G = RED_AMBER;
            Time_in_state = 0;
            }

         break;
         }

      case RED_AMBER: 
         {
         Red_light = ON;
         Amber_light = ON;
         Green_light = OFF;

         if (++Time_in_state == RED_AND_AMBER_DURATION)
            {
            Light_state_G = GREEN;
            Time_in_state = 0;
            }

         break;
         }

      case GREEN: 
         {
         Red_light = OFF;
         Amber_light = OFF;
         Green_light = ON;

         if (++Time_in_state == GREEN_DURATION)
            {
            Light_state_G = AMBER;
            Time_in_state = 0;
            }

         break;
         }

      case AMBER: 
         {
         Red_light = OFF;
         Amber_light = ON;
         Green_light = OFF;

         if (++Time_in_state == AMBER_DURATION)
            {
            Light_state_G = RED;
            Time_in_state = 0;
            }

         break;
         }

      case BULB_BLOWN: 
         {
         // Blown bulb detected
         // Switch all bulbs off
         // (Drivers won't be happy, but it will be clear
         //  that something is wrong)
         Red_light = OFF;
         Amber_light = OFF;
         Green_light = OFF;

         // We remain in this state until state
         // is changed manually, or system is reset
         break;
         }
      }
   }

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

  TRAFFIC_LIGHTS_Check_Local_Bulb()

  Check the status of the local bulbs (DUMMY FUNCTION HERE)

-*------------------------------------------------------------------*/
bit TRAFFIC_LIGHTS_Check_Local_Bulb(void)
    {
    // This dummy function confirms the bulbs are OK
    //
    // - See Chapter 32 for further info.
    return RETURN_NORMAL;
    }

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

  TRAFFIC_LIGHTS_Display_Safe_Output()

  Used in the event of system failure, etc.

-*------------------------------------------------------------------*/
void TRAFFIC_LIGHTS_Display_Safe_Output(void)
   {
   if (TRAFFIC_LIGHTS_Check_Local_Bulb() == RETURN_NORMAL)
      {
      // Bulbs are OK 
      // - best thing to do is to display STOP
      Red_light = ON;
      Amber_light = OFF;
      Green_light = OFF;
      }
   else
      {
      // At least one bulb has blown 
      // - best thing we can do is extinguish all bulbs
      Red_light = OFF;
      Amber_light = OFF;
      Green_light = OFF;
      } 
   }

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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆91在线看| 亚洲制服丝袜一区| 欧美午夜不卡在线观看免费| 免费成人在线网站| 亚洲欧美日韩国产成人精品影院 | 中文字幕va一区二区三区| 欧美色综合网站| 成人综合激情网| 欧美a级理论片| 亚洲黄色av一区| 国产精品美女视频| 精品免费国产一区二区三区四区| 色综合久久九月婷婷色综合| 国产精品18久久久久| 日韩综合在线视频| 一区二区三区加勒比av| 国产精品污网站| 久久―日本道色综合久久| 91精品国产aⅴ一区二区| 99re视频精品| 成人精品视频一区二区三区 | 国产欧美综合在线| 日韩美女视频在线| 宅男在线国产精品| 欧美三级电影在线看| 色香蕉成人二区免费| 成人av电影在线观看| 国产馆精品极品| 国产精品99久久久久久有的能看| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲国产一区二区视频| 亚洲综合视频在线| 亚洲人一二三区| 中文字幕一区二区三区在线观看| 国产日韩欧美一区二区三区乱码| 26uuu国产日韩综合| 欧美成人精品1314www| 欧美丰满少妇xxxxx高潮对白| 欧美日韩性生活| 精品视频免费看| 欧美顶级少妇做爰| 3d动漫精品啪啪| 日韩免费电影网站| 精品国产污污免费网站入口| 精品欧美久久久| 国产偷国产偷亚洲高清人白洁| 2023国产一二三区日本精品2022| 久久综合色鬼综合色| 久久综合久久综合久久| 国产亚洲精品aa午夜观看| 亚洲精品一区在线观看| 国产日产欧美精品一区二区三区| 国产午夜精品一区二区| 中文字幕在线观看不卡视频| 亚洲精品国产第一综合99久久| 一区二区三区在线视频免费 | 久久精品水蜜桃av综合天堂| 久久久久久麻豆| 中文字幕在线一区免费| 亚洲免费电影在线| 亚洲va欧美va国产va天堂影院| 偷拍亚洲欧洲综合| 狠狠狠色丁香婷婷综合激情| 国产成人免费高清| 色婷婷综合久久久中文一区二区| 欧美日韩国产大片| 精品日韩成人av| 国产精品成人一区二区三区夜夜夜| 亚洲免费av网站| 蜜臀va亚洲va欧美va天堂| 国产91富婆露脸刺激对白| 色吧成人激情小说| 91精品国产全国免费观看| 国产婷婷精品av在线| 亚洲三级在线观看| 老司机免费视频一区二区| 成人免费看黄yyy456| 欧美日韩久久久| 久久夜色精品国产欧美乱极品| 亚洲色图19p| 久久99久久久久久久久久久| a在线播放不卡| 91精品综合久久久久久| 国产精品美女久久久久aⅴ | 日韩欧美综合一区| 国产精品理伦片| 日本不卡的三区四区五区| 国产成人精品一区二区三区四区 | 91亚洲永久精品| 91精品国产品国语在线不卡| 国产精品传媒入口麻豆| 免费观看日韩av| 99在线精品视频| 精品国产伦一区二区三区观看方式 | 久久天堂av综合合色蜜桃网| 亚洲精品videosex极品| 韩日欧美一区二区三区| 精品视频123区在线观看| 国产精品素人视频| 青青草原综合久久大伊人精品| 成人视屏免费看| 欧美成人伊人久久综合网| 亚洲午夜一区二区| 国产传媒一区在线| 91精品国产全国免费观看| 亚洲美女偷拍久久| 国产成人在线看| 欧美一区二区三区视频免费 | 午夜久久福利影院| 99久久精品久久久久久清纯| 2023国产精品| 久久成人av少妇免费| 678五月天丁香亚洲综合网| 依依成人精品视频| 成人高清免费观看| 亚洲精品一区二区三区99| 首页亚洲欧美制服丝腿| 91猫先生在线| 国产精品国产三级国产三级人妇| 久久99精品国产91久久来源| 在线成人av影院| 亚洲综合999| 91天堂素人约啪| 日韩一区中文字幕| 国产98色在线|日韩| 精品国产91久久久久久久妲己| 日韩国产成人精品| 欧美三片在线视频观看 | 亚洲成人资源网| 色欧美日韩亚洲| 亚洲精品视频在线看| 成人高清在线视频| 国产精品初高中害羞小美女文| 成人高清视频免费观看| 国产精品成人一区二区三区夜夜夜| 国产不卡一区视频| 国产精品无遮挡| 国产成人在线电影| 国产精品免费人成网站| 9色porny自拍视频一区二区| 国产精品理论片在线观看| 色偷偷88欧美精品久久久| 一区二区三区在线观看视频 | 精品国产制服丝袜高跟| 久久99国产精品免费网站| 欧美成va人片在线观看| 国内外成人在线| 国产欧美日韩另类一区| 成人福利视频在线| 夜夜嗨av一区二区三区网页| 欧美人伦禁忌dvd放荡欲情| 天天综合色天天| 日韩网站在线看片你懂的| 国产一区二区在线影院| 欧美极品美女视频| 色综合色狠狠综合色| 亚洲bt欧美bt精品| 日韩精品一区二区三区蜜臀| 国产乱淫av一区二区三区| 国产精品久久久久aaaa| 91福利精品第一导航| 日本不卡一二三区黄网| 国产日本亚洲高清| 一本色道久久综合亚洲91| 青青草一区二区三区| 中文字幕欧美区| 欧美日韩三级一区二区| 久久成人羞羞网站| 国产成人av自拍| 伊人性伊人情综合网| 日韩精品一区二区三区蜜臀| 成人av资源在线观看| 国产精品天天摸av网| 欧美综合天天夜夜久久| 久久狠狠亚洲综合| 国产精品久线在线观看| 亚洲精品一二三区| 538在线一区二区精品国产| 一区二区免费在线播放| 精品sm在线观看| 欧美午夜视频网站| 91亚洲国产成人精品一区二区三| 国产一区二区调教| 欧美a级理论片| 天堂蜜桃91精品| 亚洲一区二区在线播放相泽 | 看电视剧不卡顿的网站| 亚洲一二三四在线| 亚洲丝袜制服诱惑| 亚洲国产成人在线| 国产日韩欧美制服另类| 精品久久久久久久久久久久包黑料| 欧美乱妇一区二区三区不卡视频 | 中文字幕综合网| 亚洲国产成人一区二区三区| 国产喷白浆一区二区三区| 26uuu国产一区二区三区| 精品久久久久久久久久久久久久久| 欧美精品在线一区二区三区| 欧美日韩一区视频|