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

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

?? intservice.c

?? MSP430FE42X防竅電電表DEMO(編譯器IAR3.42)
?? C
?? 第 1 頁 / 共 2 頁
字號:


/* 標記脈沖寬度 */
static signed int total_energy_led_remaining_time;
unsigned long ul_actensper1,ul_actensper2;
//union signed_long_word ds;


/************************************************************
*                          SD16中斷函數                     *
*                                                           *
* 說明:當ESP關閉時用SD16測量溫度                           *
*************************************************************/



/****************************************************************
*                      ESP中斷服務程序                          *
****************************************************************/
#pragma vector=ESP430_VECTOR
__interrupt void ESP_ISR (void)
{
  unsigned int msg_data= MBIN1;
  unsigned int msg     = MBIN0;
  unsigned int tmp;

  if (msg == mEVENT)
  {
    if (msg_data & ENRDYFG)
    {
//      sd16cycle=0;
//      sd16cycle1=0;
//#if   PULSE_MEASURE_MODE != 2
      *(int*)(&DM.EspRs.lActEnergy1) = ACTENERGY1_LO;
      *((int*)(&DM.EspRs.lActEnergy1)+1) = ACTENERGY1_HI;
      if(DM.EspRs.lActEnergy1<0)
      {
        DM.EspRs.lActEnergy1=-DM.EspRs.lActEnergy1;
        DM.uiESP430_STAT0    |= NEGENFG0;
      }
      else
      {
        DM.uiESP430_STAT0    &= ~NEGENFG0;
      }
//#endif

#ifdef TAMPER_DETECTION
      *(int*)(&DM.EspRs.lActEnergy2) = ACTENERGY2_LO;
      *((int*)(&DM.EspRs.lActEnergy2)+1) = ACTENERGY2_HI;
      if(DM.EspRs.lActEnergy2<0)
      {
        DM.EspRs.lActEnergy2=-DM.EspRs.lActEnergy2;
        DM.uiESP430_STAT0    |= NEGENFG1;
      }
      else
      {
        DM.uiESP430_STAT0    &= ~NEGENFG1;
      }
      if(DM.EspRs.lActEnergy2>DM.EspRs.lActEnergy1)
      {
        DM.uiESP430_STAT0    |= I2LARGEI1;
      }
      else
      {
        DM.uiESP430_STAT0    &= ~I2LARGEI1;
      }
#endif
      *(int*)(&DM.EspRs.lReActEnergy) = REACTENERGY_LO;
      *((int*)(&DM.EspRs.lReActEnergy)+1) = REACTENERGY_HI;
      *(int*)(&DM.EspRs.lAppEnergy) = APPENERGY_LO;
      *((int*)(&DM.EspRs.lAppEnergy)+1) = APPENERGY_HI;

      //SM.EspChk = ChkSum((unsigned char *)&SM.Esp, sizeof(SM.Esp));

      DM.EspRs.uiV1Rms = V1RMS;
      *(int*)(&DM.EspRs.ulIRms) = IRMS_LO;
      *((int*)(&DM.EspRs.ulIRms)+1) = IRMS_HI;


      
#if  PULSE_MEASURE_MODE == 0	  	
#ifdef TAMPER_DETECTION
	  //DM.ulActP1=DM.EspRs.lActEnergy1*CZ_ENERGY_100000;
	  //DM.ulActP2=DM.EspRs.lActEnergy2*CZ_ENERGY_100000;
	  if(DM.ucKeyCalibrationMode<8)
		{
      if(DM.uiESP430_STAT0 & TAPERFLG) //這個地方需要修改
      {
        if(DM.uiESP430_STAT0 & I2LARGEI1)
        {
          //DM.ulLastActP = DM.ulActP2;   //暫時使用
          if(DM.EspRs.lActEnergy2>0)
          {
            DM.ulActP1=DM.EspRs.lActEnergy1*CZ_ENERGY_100000;
	          DM.ulActP2=DM.EspRs.lActEnergy2*CZ_ENERGY_100000;
            DM.ulLastActP = DM.ulActP2;
            
            DM.ulReActP = DM.EspRs.lReActEnergy*CZ_ENERGY_100000;
            DM.ulAppP = DM.EspRs.lAppEnergy*CZ_ENERGY_100000;

            DM.EspRs.uiPowerFct = POWERFCT;

            if(DM.EspRs.uiPowerFct>0x8000)
            {
              if(DM.EspRs.uiPowerFct>0xC000)
              {
                DM.EspRs.uiPowerFct=DM.EspRs.uiPowerFct-0xC000;
                DM.EspRs.uiPowerFct=0x4000-DM.EspRs.uiPowerFct;
              }
              else
              {
                DM.EspRs.uiPowerFct = DM.EspRs.uiPowerFct-0x8000;
              }
            }
            else
            {
              if(DM.EspRs.uiPowerFct>0x4000)
              {
                DM.EspRs.uiPowerFct=0x8000-DM.EspRs.uiPowerFct;
              }
            }
            DM.EspRs.iCapInd = CAPIND;
          }
          else
          {
            DM.ulActP1=0;
	          DM.ulActP2=0;
            DM.ulLastActP = 0;
            
            DM.ulReActP = 0;
            DM.ulAppP = 0;
            
            DM.EspRs.ulIRms = 0;
				    DM.EspRs.uiPowerFct = 0;
            DM.EspRs.iCapInd = 0;
          }
        }
        else
        {
          //DM.ulLastActP = DM.ulActP1;   //暫時使用
          if(DM.EspRs.lActEnergy1>0)
          {
            DM.ulActP1=DM.EspRs.lActEnergy1*CZ_ENERGY_100000;
	          DM.ulActP2=DM.EspRs.lActEnergy2*CZ_ENERGY_100000;
            DM.ulLastActP = DM.ulActP1;
            
            DM.ulReActP = DM.EspRs.lReActEnergy*CZ_ENERGY_100000;
            DM.ulAppP = DM.EspRs.lAppEnergy*CZ_ENERGY_100000;

            DM.EspRs.uiPowerFct = POWERFCT;

            
            DM.EspRs.iCapInd = CAPIND; 
          }
          else
          {
            DM.ulActP1=0;
	          DM.ulActP2=0;
            DM.ulLastActP = 0;
            
            DM.ulReActP = 0;
            DM.ulAppP = 0;
            
            DM.EspRs.ulIRms = 0;
				    DM.EspRs.uiPowerFct = 0;
            DM.EspRs.iCapInd = 0;
            
          }
        }                
        if(DM.uiESP430_STAT0 & NEGENFG0)
        {
          //LED_REACTIVE_OUT &= ~LED_REACTIVE_BIT;
        }
        else
        {
          //LED_REACTIVE_OUT |= LED_REACTIVE_BIT;
        }
      }
      else
      {
        //DM.ulLastActP = DM.ulActP1;
        if(DM.EspRs.lActEnergy1>0)
        {
          DM.ulActP1=DM.EspRs.lActEnergy1*CZ_ENERGY_100000;
	        DM.ulActP2=DM.EspRs.lActEnergy2*CZ_ENERGY_100000;
          DM.ulLastActP = DM.ulActP1;
            
          DM.ulReActP = DM.EspRs.lReActEnergy*CZ_ENERGY_100000;
          DM.ulAppP = DM.EspRs.lAppEnergy*CZ_ENERGY_100000;

          DM.EspRs.uiPowerFct = POWERFCT;

          
          DM.EspRs.iCapInd = CAPIND;  
        }
        else
        {
          DM.ulActP1=0;
	        DM.ulActP2=0;
          DM.ulLastActP = 0;
            
          DM.ulReActP = 0;
          DM.ulAppP = 0;
          
          DM.EspRs.ulIRms = 0;
				  DM.EspRs.uiPowerFct = 0;
          DM.EspRs.iCapInd = 0;
        }
        
        
        if(DM.uiESP430_STAT0 & NEGENFG1)
        {
          //LED_REACTIVE_OUT &= ~LED_REACTIVE_BIT;
        }
        else
        {
          //LED_REACTIVE_OUT |= LED_REACTIVE_BIT;
        }
      }
		}
		else if(DM.ucKeyCalibrationMode<10)
		{
			DM.ulLastActP = DM.ulActP1;			
		}
		else
		{
			DM.ulLastActP = DM.ulActP2;			
		}

#else
      //DM.ulActP1 = DM.EspRs.lActEnergy1*CZ_ENERGY_100000;
	  //DM.ulLastActP = DM.ulActP1;
    if(DM.EspRs.lActEnergy1>0)
        {
          DM.ulActP1=DM.EspRs.lActEnergy1*CZ_ENERGY_100000;
          DM.ulLastActP = DM.ulActP1;
            
          DM.ulReActP = DM.EspRs.lReActEnergy*CZ_ENERGY_100000;
          DM.ulAppP = DM.EspRs.lAppEnergy*CZ_ENERGY_100000;

          DM.EspRs.uiPowerFct = POWERFCT;

          
          DM.EspRs.iCapInd = CAPIND;  
        }
        else
        {
          DM.ulActP1=0;
          DM.ulLastActP = 0;
            
          DM.ulReActP = 0;
          DM.ulAppP = 0;
          
          DM.EspRs.ulIRms = 0;
				  DM.EspRs.uiPowerFct = 0;
          DM.EspRs.iCapInd = 0;
        }
#endif
#endif

      //DM.ulReActP = DM.EspRs.lReActEnergy*CZ_ENERGY_100000;
      //DM.ulAppP = DM.EspRs.lAppEnergy*CZ_ENERGY_100000;

      DM.ulMainsPeriodBak = DM.EspRs.ulMainsPeriod;
      DM.ullMainsCntBak = DM.EspRs.uiMainsCnt;
      DM.EspRs.ulMainsPeriod=0;
      DM.EspRs.uiMainsCnt=0;

      if (DM.ucCalibrationMode>0)
      {
        Calibration();
      }

      SystemEventFlag |= SYSTEM_ESP_ENRDYFG;
      _BIC_SR_IRQ(LPM0_bits);
    }

#ifdef TAMPER_DETECTION
    if (msg_data & TAMPFG)
    {
      //LED_TAMP_OUT &= ~LED_TAMP_BIT;
			DM.uiESP430_STAT0 |= TAPERFLG;
    }
    else
    {
      //LED_TAMP_OUT |= LED_TAMP_BIT;
			DM.uiESP430_STAT0 &= ~TAPERFLG;	
    }
#endif

    if (msg_data & ZXTRFG)
    {
      DM.uiEspState |= ZXLDFG;
    }

    if ((msg_data &ZXLDFG)&& (DM.uiEspState & ZXLDFG ))
    {
      DM.uiEspState &= ~ZXLDFG;
//      sd16cycle1++;
      tmp=MAINSPERIOD;
#if   PULSE_MEASURE_MODE == 1
      if(DM.EspRs.uiV1Rms>STARTVOLTAG)
      {
        *(int*)(&DM.EspRs.lActensper1) = ACTENSPER1_LO;
        *((int*)(&DM.EspRs.lActensper1)+1) = ACTENSPER1_HI;
        if(DM.EspRs.lActEnergy1<0)
        {
          DM.EspRs.lActEnergy1=-DM.EspRs.lActEnergy1;
          DM.uiESP430_STAT0    |= NEGENFG0;
        }
        else
        {
          DM.uiESP430_STAT0    &= ~NEGENFG0;
        }
      }
      else
      {
        *(int*)(&DM.EspRs.lActensper1)=0;
        *((int*)(&DM.EspRs.lActensper1)+1)=0;
      }
      DM.ulLastActP = (long long)(DM.EspRs.lActensper1)*CZ_ENERGY_100000
                       *1048576/tmp;
#endif
      //DM.Esp.ulMainsPeriod += MAINSPERIOD;
      DM.EspRs.ulMainsPeriod += tmp;
      DM.EspRs.uiMainsCnt++;
    }


#if   PULSE_MEASURE_MODE == 2
    if (msg_data & ILREACHEDFG)
    {

			//ilcycle++;
      SM.uiActIntrptLevlCounter++;
      if(SM.uiActIntrptLevlCounter>359)
			//if(SM.uiActIntrptLevlCounter>1)
      {
        SM.uiActIntrptLevlCounter = 0;
#if PCB_VERSION==0
        DM.ucP595OUT |= ACTIVE_CAL;
        Update_HC595_Port(DM.ucP595OUT);
#elif PCB_VERSION==1
        LED_ACTIVE_OUT |= LED_ACTIVE_BIT;
#endif
        TACCR1 = TAR + ENERGY_PULSE_PERIOD;
        TACCTL1 = CCIE;
        SM.uiActEPulse++;
        if(SM.uiActEPulse>1)
        {
          SM.uiActEPulse = 0x00 ;
          _BCD4INC(SM.CMon.KwhPp.Fee[0]);
        }
      }
    }
#endif

  } // End of if (MBIN0 == mEVENT)
/*
  if (msg == mTEMPRDY)
  {
    DM.iTempSample = msg_data;
    SystemEventFlag |= SYSTEM_TEMP_COMPENSATE;
  }
*/
}



#pragma vector=BASICTIMER_VECTOR
__interrupt void BT_ISR (void)
{
	//SystemEventFlag |= SYSTEM_BT_FLAG;
	//_BIC_SR_IRQ(LPM3_bits);
  SystemEventFlag |= SYSTEM_WATCHDOG_RESET;

  _BIC_SR_IRQ(LPM3_bits);
}



#pragma vector=KEY_VECTOR
__interrupt void Key_ISR (void)
{
  if((KEY_COM_IFG & KEY_UP_BIT) == KEY_UP_BIT)
  {
    DM.ucKeyFlg |= KEY_UP_FLAG;
    KEY_COM_IFG &= ~KEY_UP_BIT;
  }
  if((KEY_COM_IFG & KEY_DOWN_BIT) == KEY_DOWN_BIT)
  {
    DM.ucKeyFlg |= KEY_DOWN_FLAG;
    KEY_COM_IFG &= ~KEY_DOWN_BIT;
  }
/*
  if((KEY_COM_IFG & KEY_REMOVE_BIT) == KEY_REMOVE_BIT)
  {
    DM.uc_KeyFlg |= KEY_REMOVE_FLAG;
    KEY_COM_IFG &= ~ KEY_REMOVE_BIT;
  }
*/
  SystemEventFlag |= SYSTEM_KEY_FLAG;
  _BIC_SR_IRQ(LPM3_bits);
}

#pragma vector=PORT2_VECTOR
__interrupt void PowerDown_ISR (void)
{
  if(((POWER_TEST_IN & POWER_TEST_BIT) == 0) && ((ESPCTL & ESPEN) == ESPEN))
  {
    MBOUT1= modeIDLE; // ESP_IDLE;
    MBOUT0= mSET_MODE;
    while ((ESP430_STAT0 & ACTIVEME) == ACTIVEME); // Wait for Idle mode

    ESPCTL = 0;
    SD16CTL = 0x0000;

    SCFI0 = FLLD_1;  			    // Freq = 1.024MHz
    SCFQCTL = 32 - 1;
    FLL_CTL0 &= ~DCOPLUS;

#if PCB_VERSION==0
    DM.ucP595OUT &= ~(ACTIVE_CAL+REACTIVE_CAL);
    Update_HC595_Port(DM.ucP595OUT);
#elif PCB_VERSION==1
    LED_ACTIVE_OUT &= ~LED_ACTIVE_BIT;
    LED_REACTIVE_OUT &= ~LED_REACTIVE_BIT;
#endif
    TACCTL1 = 0x00;
    DM.ucReActPulseCycle = 0;


    SystemEventFlag |= SYSTEM_DATASAVE_FLAG;
    DataSave_Process();

    DM.ulActP1 = 0;
    DM.ulReActP = 0;
    DM.ulAppP = 0;

    DM.uiV1Rms = 0;
    DM.ulIRms = 0;
    DM.iPf = 0;
    DM.uiMainsFrequency = 0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av成人动漫在线观看| 石原莉奈一区二区三区在线观看| 欧美在线观看视频一区二区三区| 国产成人aaaa| 国产成人免费视频一区| 国产精品一区二区你懂的| 国产美女av一区二区三区| 国产一区二区福利视频| 成人午夜碰碰视频| 成人免费视频免费观看| 99国产精品国产精品久久| 97精品超碰一区二区三区| av电影在线观看一区| 97成人超碰视| 欧美人xxxx| 欧美精品国产精品| 欧美巨大另类极品videosbest | 国产欧美精品一区二区三区四区| 日韩欧美成人一区二区| 国产午夜精品福利| 亚洲伊人色欲综合网| 亚洲风情在线资源站| 天天色综合成人网| 另类小说图片综合网| 国产高清亚洲一区| 日本韩国一区二区| 欧美日韩精品欧美日韩精品一 | 精品国产制服丝袜高跟| 久久免费美女视频| 中文字幕欧美区| 一区二区三区在线免费视频| 日韩国产精品久久久| 国产高清不卡二三区| 欧美日韩的一区二区| 国产亚洲va综合人人澡精品| 亚洲视频狠狠干| 紧缚奴在线一区二区三区| 91小视频免费观看| 日韩欧美的一区| 国产一区欧美二区| 欧美优质美女网站| 久久久久久久一区| 日本va欧美va精品发布| 成人免费视频一区| 欧美一区午夜视频在线观看| 国产精品久久久久久久久动漫 | 成年人国产精品| 久久这里只精品最新地址| 亚洲色欲色欲www在线观看| 免费看黄色91| 欧美午夜免费电影| 国产精品久久久久一区二区三区共| 亚洲www啪成人一区二区麻豆| 风间由美性色一区二区三区| 欧美一区二区精品| 婷婷激情综合网| 在线一区二区三区四区五区| 日本一二三不卡| 国产精品影视天天线| 日韩欧美高清dvd碟片| 肉肉av福利一精品导航| 在线免费观看日本一区| 亚洲视频一区在线观看| 懂色av中文一区二区三区| 欧美成人精品1314www| 午夜伊人狠狠久久| 欧美三级视频在线播放| 一区二区国产视频| 91欧美激情一区二区三区成人| 国产精品天美传媒| 国产99久久久国产精品潘金网站| 日韩一区二区在线观看| 日韩中文欧美在线| 91精品啪在线观看国产60岁| 亚洲成人午夜电影| 欧美精品亚洲一区二区在线播放| 一区二区三区在线观看欧美 | 成人免费毛片a| 国产精品美日韩| av男人天堂一区| 一区二区在线电影| 欧洲精品视频在线观看| 亚洲国产精品欧美一二99 | 日韩电影一区二区三区| 欧美成人精品3d动漫h| 国产美女在线精品| 国产视频一区在线播放| heyzo一本久久综合| 一区二区三区欧美亚洲| 欧美一三区三区四区免费在线看 | 国产乱码精品一区二区三区av | 久久蜜桃av一区精品变态类天堂| 国产一区二区福利视频| 国产精品福利一区二区| 色噜噜狠狠成人网p站| 三级不卡在线观看| 国产午夜亚洲精品午夜鲁丝片 | 日韩国产欧美三级| 精品盗摄一区二区三区| 99久久精品费精品国产一区二区| 亚洲区小说区图片区qvod| 欧美精品一二三四| 国产成人精品亚洲午夜麻豆| 一区二区三区在线高清| 欧美成人猛片aaaaaaa| 91亚洲精品一区二区乱码| 日韩电影在线观看电影| 中文字幕av不卡| 欧美久久高跟鞋激| 国产成人免费在线| 婷婷久久综合九色综合绿巨人| 国产欧美视频在线观看| 欧美伊人久久大香线蕉综合69 | 国产亚洲综合av| 色婷婷亚洲精品| 精品一区二区免费在线观看| 国产精品人人做人人爽人人添 | 国产欧美日韩精品在线| 欧美三级视频在线观看| 成人一区二区三区在线观看| 亚洲电影激情视频网站| 国产精品天美传媒| 久久综合av免费| 欧美日韩国产综合一区二区三区 | 91国在线观看| 国产精品一区在线观看你懂的| 亚洲一区二区av电影| 国产精品美女久久久久久久| 日韩欧美成人一区二区| 欧美日韩视频在线一区二区| fc2成人免费人成在线观看播放| 日本va欧美va欧美va精品| 亚洲专区一二三| 中文字幕在线不卡国产视频| 精品粉嫩超白一线天av| 91精品国产乱| 欧美一区二区视频网站| 欧美丝袜丝nylons| 欧美色综合久久| 91麻豆国产在线观看| 国产**成人网毛片九色| 韩国理伦片一区二区三区在线播放| 亚洲综合色噜噜狠狠| 成人欧美一区二区三区黑人麻豆 | 亚洲国产日韩在线一区模特| 亚洲欧洲日韩综合一区二区| 久久蜜桃一区二区| 久久夜色精品国产噜噜av| 精品国产一区二区三区四区四| 欧美精品一二三区| 日韩欧美一级精品久久| 欧美一区二区高清| 欧美一区二区三区免费大片| 91麻豆精品国产自产在线 | 欧洲一区在线电影| 欧美无人高清视频在线观看| 欧美性大战久久久久久久蜜臀 | 亚洲精品ww久久久久久p站| 亚洲欧美日韩系列| 亚洲综合色在线| 午夜精品久久久久久久99水蜜桃 | 亚洲美女在线国产| 亚洲国产日韩综合久久精品| 首页国产丝袜综合| 精品亚洲免费视频| 国产成人免费高清| 99精品欧美一区二区三区小说 | 欧美日韩一卡二卡三卡| 7799精品视频| 久久久久久久久蜜桃| 亚洲欧洲美洲综合色网| 亚洲高清久久久| 美日韩一区二区三区| 国产成人精品www牛牛影视| 97精品视频在线观看自产线路二| 91精品91久久久中77777| 56国语精品自产拍在线观看| 欧美精品一区视频| 国产精品久久久久三级| 午夜免费欧美电影| 国产精品一区二区在线观看网站| 91伊人久久大香线蕉| 欧美成人女星排行榜| 亚洲欧美综合另类在线卡通| 亚洲福利视频三区| 国产精品一区专区| 欧美蜜桃一区二区三区| 欧美精彩视频一区二区三区| 亚洲一区中文日韩| 国产成人午夜精品影院观看视频 | 日韩欧美电影一二三| 国产精品人成在线观看免费| 亚洲成人午夜电影| 成人黄色免费短视频| 欧美一个色资源| 亚洲卡通欧美制服中文| 国产传媒欧美日韩成人| 欧美另类变人与禽xxxxx| 国产精品女人毛片| 国产在线播放一区|