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

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

?? 05070.c

?? 被動(dòng)紅外傳感器開關(guān)
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
    }
    else if (uiMajorButtonTimer >= BUTTON_DEBOUNCING_TIME)  //0.1s
    {
      ucMsgButton = MSG_MAJOR_BUTTON_SHORT_PRESSED;
    }
    uiMajorButtonTimer = 0;
    ucButtonTimer2 = 0;
  }
}

void updateCDS(void)
{
  if (__adc__(ADMUX_LIGHTLEVEL) >= LIGHT_LEVEL_THRESHHOLD)
  {
    if ((++ucTimerDark) == 0)
    {
      ucTimerDark--;
    }
  }
  else
  {
    ucTimerDark = 0;
  }
}

void updateTimer(void)
{
  if (ucStatus.bf_var.OCCUPIED == 0)
  {
    if ((ucTimerBase == 0) && (uiTimerWarmup == 0))
    {
      if (uiTimerDelay > 0)
      {
        uiTimerDelay--;
      }
      else
      {
        if ((++uiTimerAfterDelay) == 0)
        {
          uiTimerAfterDelay--;
        }
      }
    }
  }
  else
  {
    __figureoutdelay__();
    uiTimerAfterDelay = 0;
  }
}

void inoutTestMode(void)
{
  if (uiTimerTestMode == 0)
  {
    uiTimerTestMode = TIME_TESTMODE_DURATION;
  }
  else
  {
    uiTimerTestMode = 0;
  }
}

void updatePIR(void)
{
  static unsigned char ucLastPIRSample = 0;
  static unsigned char ucCurrentPIRSample = 0;
  static unsigned char ucThreshHold = MIN_THRESH;
  static unsigned int ucLastLastHighLength = 0;
  static unsigned int ucLastHighLength = 0;
  static unsigned int ucCurHighLength = 0;
  static unsigned int ucLastLowLength = 0;
  static unsigned int ucCurLowLength = 0;
  ucStatus.bf_var.SPACEOCCUPIED = 0;
  ucLastPIRSample = ucCurrentPIRSample;
  ucCurrentPIRSample = __adc__(ADMUX_OCCUPATION);
  if (ucCurrentPIRSample > MAX_PIR)
    ucCurrentPIRSample = MAX_PIR;
  if (ucCurrentPIRSample >= PIR_CENTER)
    ucCurrentPIRSample -= PIR_CENTER;
  else
    ucCurrentPIRSample = PIR_CENTER - ucCurrentPIRSample;
  if ((0 == uiTimerWarmup) && (0 == ucTimerIgnore))
  {
    if (ucCurrentPIRSample >= ucThreshHold)
    {
      if (ucLastPIRSample < ucThreshHold)
      {
        ucLastLastHighLength = ucLastHighLength;
        ucLastHighLength = ucCurHighLength;
        ucCurHighLength = 1;
      }
      else if (ucCurHighLength > 0)
      {
        ucCurHighLength++;
        if (ucCurHighLength >= MID_WIDTH)
        {
          ucStatus.bf_var.SPACEOCCUPIED = 1;
          ucCurHighLength = 0;
        }
      }
    }
    else
    {
      if (ucLastPIRSample >= ucThreshHold)
      {
        if (((ucLastHighLength >= MIN_WIDTH) && (ucCurHighLength >= MIN_WIDTH) && ((ucLastHighLength >= MIN_SPACE) || (ucCurHighLength >= MIN_SPACE)) && (ucLastHighLength + ucCurLowLength + ucCurHighLength <= MAX_WIDTH)) || ((ucLastLastHighLength >= MIN_WIDTH) && (ucLastHighLength >= MIN_WIDTH) && (ucCurHighLength >= MIN_WIDTH) && (ucLastLastHighLength + ucLastLowLength + ucLastHighLength + ucCurLowLength + ucCurHighLength <= MAX_WIDTH)))
        {
          ucStatus.bf_var.SPACEOCCUPIED = 1;
          ucCurLowLength = 0;
          ucCurHighLength = 0;
        }
        else
        {
          ucLastLowLength = ucCurLowLength;
          ucCurLowLength = 1;
        }
      }
      else if (ucCurLowLength > 0)
        ucCurLowLength += (ucCurLowLength >= MAX_WIDTH) ? 0 : 1;
    }
  }
  else if (ucTimerBase == 0)
  {
    if (uiTimerWarmup > 0)
    {
      uiTimerWarmup--;
    }
    if (ucTimerIgnore > 0)
    {
      ucTimerIgnore--;
    }
  }
}

void updateStatus(void)
{
  switch (ucStatus.uc_var & STATUS_MASK)
  {
    case STATUS_MANUALOFF:
      if (ucMsgButton == MSG_MAJOR_BUTTON_SHORT_PRESSED)
      {
        goLoadOn();
      }
      else
      {
        if ((uiTimerTestMode > 0) || ((ucMode == MODE_U) && (uiTimerAfterDelay >= TIME_RESET_TO_AUTO)))
        {
          goAutoOff();
        }
      }
      break;
    case STATUS_AUTOOFF:
      if ((uiTimerTestMode == 0) && (ucMsgButton == MSG_MAJOR_BUTTON_SHORT_PRESSED))
      {
        goLoadOn();
      }
      else if (ucStatus.bf_var.SPACEOCCUPIED == 1) //&& (ucMsgButton != MSG_MAJOR_BUTTON_SHORT_PRESSED))
      {
      	if (ucTimerDark == 0xff)
      	{
      	  goLoadOn();
      	}
      	else
      	{
          goOnIfDark();
        }
      }
      else
      {
        if ((ucMode == MODE_BA) && (uiTimerAfterDelay >= TIME_RESET_TO_MANUAL) && (uiTimerTestMode == 0))
        {
          goManualOff();
        }
      }
      break;
    case STATUS_LOADON:
      if ((uiTimerTestMode == 0) && (ucMsgButton == MSG_MAJOR_BUTTON_SHORT_PRESSED))
      {
        goManualOff();
      }
      else
      {
        if (uiTimerDelay == 0)
        {
          goAutoOff();
        }
      }
      break;
    case STATUS_ONIFDARK:
      if (((uiTimerTestMode == 0) && (ucMsgButton == MSG_MAJOR_BUTTON_SHORT_PRESSED)) || (ucTimerDark == 0xff))
      {
        goLoadOn();
      }
      else
      {
        if (uiTimerDelay == 0)
        {
          goAutoOff();
        }
      }
      break;
    default:
      break;
  }
}

void goLoadOn(void)
{
  ucStatus.bf_var.RELAYBUFFER = 1;
  ucStatus.uc_var &= ~STATUS_MASK;
  ucStatus.uc_var |= STATUS_LOADON;
}

void goManualOff(void)
{
  ucStatus.bf_var.RELAYBUFFER = 0;
  ucStatus.uc_var &= ~STATUS_MASK;
  ucStatus.uc_var |= STATUS_MANUALOFF;
}

void goAutoOff(void)
{
  ucStatus.bf_var.RELAYBUFFER = 0;
  ucStatus.uc_var &= ~STATUS_MASK;
  ucStatus.uc_var |= STATUS_AUTOOFF;
}

void goOnIfDark(void)
{
  ucStatus.uc_var &= ~STATUS_MASK;
  ucStatus.uc_var |= STATUS_ONIFDARK;
}

void updateLED(void)
{
  static unsigned char ucTCCR2A = TCCR2A_OFF;
  static unsigned char ucOCR2B = OCR2B_DIM;
  static unsigned char ucLEDTimer = 0;
  switch (ucMsgButton)
  {
    default:
      if (ucMsgButton == MSG_MAJOR_BUTTON_INOUTTESTMODE_HOLD)
      {
        ucOCR2B = OCR2B_ON;
        if ((ucTimerBase == 0) && ((ucTimerSystem & 0x01) == 0))
        {
          ucTCCR2A ^= (1<<5); //toggle LED on/off
        }
      }
      else if (ucMsgButton == MSG_MAJOR_BUTTON_LONG_HOLD)
      {
        ucOCR2B = OCR2B_ON;
        ucTCCR2A = TCCR2A_ON;
        if (uiTimerTestMode == 0)
        {
          ucTCCR2A = TCCR2A_OFF;
        }
      }
      else
      {
        if ((ucLEDTimer == 0) && (uiTimerTestMode > 0) && (ucStatus.bf_var.SPACEOCCUPIED == 1))
        {
          ucLEDTimer = TIME_LED_FLASH_DURATION;
        }
        if (ucLEDTimer > (TIME_LED_FLASH_DURATION - TIME_LED_ON_DURATION))
        {
          ucOCR2B = OCR2B_ON;
          ucTCCR2A = TCCR2A_ON;
        }
        else if (ucLEDTimer > 0)
        {
          ucTCCR2A = TCCR2A_OFF;
        }
        else  //ucLEDTimer == 0
        {
          ucOCR2B = OCR2B_DIM;
          ucTCCR2A = TCCR2A_OFF;
          if ((ucStatus.bf_var.RELAYBUFFER == 0) && (OUTPUT_RELAY_CONTROL == 0))
          {
            ucTCCR2A = TCCR2A_ON;  //turn on the LED when load is Off
          }
        }
        if (ucLEDTimer > 0)
        {
          if (ucTimerBase == 0)
          {
            ucLEDTimer--;
          }
        }
      }
      break;
  }
  TCCR2A = ucTCCR2A;
  OCR2B = ucOCR2B;
}

void lineSync(void)
{
  unsigned char ucLineSense = 0;
  __watchdog_reset();
  while (ucLineSense != 0xff)
  {
    ucLineSense = (ucLineSense << 1) + INPUT_LINE;
  }
  while (ucLineSense != 0xf0)
  {
    ucLineSense = (ucLineSense << 1) + INPUT_LINE;
  }
  if (ucTimerUnit == 0)
  {
    ucTimerUnit = 0xff;
    TCNT1 = 0;
    GTCCR |= (1 << PSR10);
    TCCR1B = TCCR1B_INIT;
  }
  else if (ucTimerUnit == 0xff)
  {
    uiFullCycle = TCNT1;
    TCCR1B = TCCR1B_OFF;
    if ((uiFullCycle < FULL_CYC_60 + 24) && (uiFullCycle > FULL_CYC_60 - 32))
    {
      ucTimerUnit = 6;
    }
    else if ((uiFullCycle < FULL_CYC_50 + 24) && (uiFullCycle > FULL_CYC_50 - 32))
    {
      ucTimerUnit = 5;
    }
    else
    {
      ucTimerUnit = 0;
    }
  }
  else
  {
    ucStatus.bf_var.LINEFREQ = 1;
    if ((++ucTimerBase) == ucTimerUnit)
    {
      ucTimerBase = 0;
      if ((++ucTimerSystem) == 10)
      {
        ucTimerSystem = 0;
      }
    }
  }
}

unsigned char __adc__(unsigned char ucTmpADCMUX)
{
  ADMUX = ucTmpADCMUX;
  ADCSRA = ADCSRA_INIT;
  ADCSRA = ADCSRA_START;
  while (ADCSRA_Bit6 == 1)
    ;
  ADCSRA = ADCSRA_OFF;
  return ADCH;
}

void __figureoutdelay__(void)
{
  uiTimerDelay = 0;
  if ((STATUS_LOADON == (ucStatus.uc_var & STATUS_MASK)) || (STATUS_ONIFDARK == (ucStatus.uc_var & STATUS_MASK)))
  {
    if (uiTimerTestMode > 0)
      uiTimerDelay = TIME_TESTMODE_DELAY;
    else
    {
      uiTimerDelay = uiDelayData[ucMode];
    }
  }
  return;
}

void delayandswitch(void)
{
  static unsigned int uiOnCalibration = 0xffff;
  static unsigned int uiOffCalibration = 0xffff;
  TCNT1 = 0;
  GTCCR |= (1 << PSR10);
  TCCR1B = TCCR1B_INIT;
  if (uiOffDelay >= uiFullCycle - 15)
  {
    uiOffDelay = DFT_OFF_DELAY;
  }
  if (uiOnDelay >= uiFullCycle - 15)
  {
    uiOnDelay = DFT_ON_DELAY;
  }
  uiTemp = uiOffDelay;
  if (ucStatus.bf_var.RELAYBUFFER)
  {
    uiTemp = uiOnDelay;
  }
  while (TCNT1 < uiTemp)
    ;
  OUTPUT_RELAY_CONTROL = ucStatus.bf_var.RELAYBUFFER;
  if (ucStatus.bf_var.RELAYBUFFER)  //turning On
  {
    uiTemp = uiOnCalibration;
    uiOnCalibration--;
    while (TCNT1 < uiFullCycle - 1)
    {
      if (INPUT_LOAD == 1)
      {
        uiTemp = uiFullCycle - TCNT1;
        uiOnCalibration = 0xffff;
        break;
      }
    }
    uiOnDelay += uiTemp;
  }
  else  //turning Off
  {
    while (INPUT_LINE == 0)
      ;
    while (INPUT_LOAD == 0)
    {
      if (TCNT1 >= (uiFullCycle >> 1) + 8)
      {
        break;
      }
    }
    while (INPUT_LOAD == 1)
      ;
    uiTemp = uiFullCycle - TCNT1;
    __delay_cycles(200);  //delay 100us
    if (INPUT_LINE == 0)
    {
      uiTemp = uiOffCalibration;
      uiOffCalibration--;
    }
    else
    {
      uiOffCalibration = 0xffff;
    }
    uiOffDelay += uiTemp;
  }
  ucTimerIgnore = TIME_IGNORE;
  TCCR1B = TCCR1B_OFF;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av一区二区三区在线| 久久久亚洲国产美女国产盗摄| 亚洲国产成人自拍| 国产成人精品亚洲日本在线桃色| 欧美va亚洲va香蕉在线| 久久99久久精品| 久久九九影视网| a4yy欧美一区二区三区| 一区二区三区波多野结衣在线观看| av不卡免费电影| 日韩精品一卡二卡三卡四卡无卡| 777欧美精品| 国产精品456| 亚洲精品视频在线看| 日韩一区二区视频在线观看| 国产一区二区视频在线| 亚洲丝袜精品丝袜在线| 欧美狂野另类xxxxoooo| 国产成人激情av| 亚洲午夜久久久久久久久久久| 日韩一区二区三区电影| 国产精品系列在线播放| 亚洲激情图片小说视频| 欧美电影免费观看高清完整版在线| 狠狠色综合播放一区二区| 亚洲乱码精品一二三四区日韩在线| 91精品国产综合久久蜜臀| av激情综合网| 国产精品1区2区3区在线观看| 亚洲制服欧美中文字幕中文字幕| 久久嫩草精品久久久精品| 欧美二区在线观看| 在线影院国内精品| 97久久精品人人做人人爽| 成人v精品蜜桃久久一区| 日韩成人精品视频| 亚洲午夜久久久久久久久电影网 | 欧美精品一区男女天堂| 欧美私人免费视频| 色综合久久九月婷婷色综合| 国产一区二区在线视频| 麻豆freexxxx性91精品| 日日摸夜夜添夜夜添亚洲女人| 亚洲电影你懂得| 亚洲成人在线免费| 亚洲成av人片一区二区三区| 亚洲精品日韩专区silk | 日韩午夜激情av| 欧美一级生活片| 精品入口麻豆88视频| 欧美成人r级一区二区三区| 日韩美一区二区三区| 亚洲精品在线观看网站| 国产欧美一区二区精品性| 国产亲近乱来精品视频| 国产欧美一区二区精品性| 国产精品毛片a∨一区二区三区| 日本一二三不卡| 亚洲精品日日夜夜| 蜜臀av性久久久久蜜臀aⅴ四虎 | 精品av综合导航| 成人欧美一区二区三区| 午夜精品一区在线观看| 国产乱子轮精品视频| 99久久亚洲一区二区三区青草| 色婷婷狠狠综合| 精品日韩一区二区三区| 亚洲一二三专区| 国产精品一区二区不卡| 欧美日韩一区国产| 国产精品人成在线观看免费 | 国产精品久久久久久久久久久免费看 | 国产日产精品一区| 日韩主播视频在线| 成人午夜私人影院| 精品剧情v国产在线观看在线| 一区二区理论电影在线观看| 激情小说欧美图片| 欧美色综合久久| 亚洲欧美色图小说| 成人a区在线观看| 欧美成人免费网站| 蜜桃精品视频在线| 欧美另类高清zo欧美| 亚洲婷婷综合色高清在线| 激情综合一区二区三区| 欧美一级高清大全免费观看| 一个色妞综合视频在线观看| 波多野结衣视频一区| 国产无一区二区| 国产成人午夜精品5599| 久久久亚洲高清| 国产成人av在线影院| 国产精品麻豆欧美日韩ww| 国产a视频精品免费观看| 日本一区免费视频| 99精品1区2区| 亚洲成人免费av| 精品福利视频一区二区三区| 精品一区二区三区在线播放视频| 日韩精品一区二区三区swag| 国产一区二区三区观看| 中文字幕一区在线观看视频| 欧美午夜在线一二页| 麻豆国产欧美一区二区三区| 2021中文字幕一区亚洲| 成人av中文字幕| 性久久久久久久| 2021国产精品久久精品| 一本色道久久综合精品竹菊| 亚洲成人av福利| 久久综合av免费| 91亚洲精品久久久蜜桃| 一级日本不卡的影视| 精品剧情在线观看| 91高清视频在线| 精品一区二区综合| 亚洲精品视频在线观看网站| 欧美一区二区三区播放老司机| 成人永久免费视频| 美国十次综合导航| 亚洲国产精品影院| |精品福利一区二区三区| 日韩一级黄色片| 欧美伊人久久大香线蕉综合69| 国产精品资源站在线| 日韩中文字幕区一区有砖一区| 国产精品美女久久久久aⅴ国产馆| 在线播放一区二区三区| 在线免费一区三区| 91网站黄www| 国产凹凸在线观看一区二区| 免费视频最近日韩| 蜜臀91精品一区二区三区| 奇米777欧美一区二区| 亚洲一二三四区| 一二三区精品视频| 亚洲免费av网站| 一区二区三区在线看| 亚洲激情成人在线| 亚洲精品videosex极品| 亚洲成人动漫一区| 成人网男人的天堂| 91在线观看视频| 色综合色狠狠综合色| 99re成人在线| 欧美日韩国产另类不卡| 欧美乱妇15p| 久久影院电视剧免费观看| 久久精品视频在线免费观看| 欧美激情一区在线| 一区二区三区四区乱视频| 亚洲成国产人片在线观看| 奇米精品一区二区三区在线观看一| 奇米影视在线99精品| 高清不卡在线观看av| 在线亚洲一区二区| 欧美一区二区精品在线| 国产日韩欧美麻豆| 亚洲福利视频导航| 国产精品羞羞答答xxdd| 在线观看国产日韩| 精品国产免费人成电影在线观看四季| 国产亚洲一区字幕| 亚洲午夜激情av| 国产精品中文字幕一区二区三区| 色综合天天综合在线视频| 91精品国产色综合久久不卡电影| 久久免费视频一区| 日本亚洲免费观看| 色素色在线综合| 亚洲国产精品精华液2区45| 日本视频中文字幕一区二区三区| 国内精品久久久久影院色| 色婷婷精品久久二区二区蜜臀av| 久久久久久久综合狠狠综合| 日韩一区精品视频| 欧美午夜精品久久久| 亚洲少妇中出一区| 成人午夜伦理影院| 国产丝袜欧美中文另类| 精品中文字幕一区二区| 91精品久久久久久久久99蜜臂| 国产精品欧美一级免费| 国产一区在线观看视频| 日韩丝袜情趣美女图片| 午夜视黄欧洲亚洲| 欧美日韩精品一区二区三区蜜桃 | 日韩成人dvd| 6080日韩午夜伦伦午夜伦| 亚洲成人综合在线| 国产成人免费xxxxxxxx| 欧美高清一级片在线观看| 国产成人高清视频| 国产精品美女久久久久久久久久久| 国产乱码精品一区二区三区av| 欧美岛国在线观看| 国产一区二区毛片| 国产精品麻豆久久久| 99国产精品久久久|