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

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

?? emeter.c

?? 430系列開發(fā)之MSP430FE42x開發(fā)代碼實例
?? C
?? 第 1 頁 / 共 2 頁
字號:
  *    so the current transformer's values are multiplied with 
  *    a factor > 1 - otherwise the shunt's values would be 
  *    multiplied with a factor < 1 and this would result
  *    in degraded accuracy.
  * -# Both currents are scaled with a factor > 1 to use the maximum FSR
  *    (Full Scale Range) at the maximum current Imax.\n
  *    In this example current I1 would be scaled by 0.44/0.30 = 1.46667
  *    and current I2 would be scaled by 0.44/0.32 = 1.25.
  *    (The RMS values at the maximum current are used to calculate the
  *     factor. VFSR(Peak) = 0.625 (see datasheet) => VFSR(RMS) = 0.44)
  */
  set_parameter(mSET_ADAPTI1, defSET_ADAPTI1); // = 1 * POW_2_14 = 16384
  set_parameter(mSET_ADAPTI2, defSET_ADAPTI2); // = 1 * POW_2_14 = 16384

/** \par Adjustment parameters Offset settings: */
  set_parameter(mSET_V1OFFSET, s_parameters.pSET_V1OFFSET);
  set_parameter(mSET_I1OFFSET, s_parameters.pSET_I1OFFSET);
  set_parameter(mSET_I2OFFSET, s_parameters.pSET_I2OFFSET);

/** \par Adjustment parameters start up currents: */
  set_parameter(mSET_STARTCURR_INT, s_parameters.pSET_STARTCURR_INT);
  set_parameter(mSET_STARTCURR_FRAC, s_parameters.pSET_STARTCURR_FRAC);

/** \par Adjustment parameters for DC Removal Periods: */
  set_parameter(mSET_DCREMPER, defSET_DCREMPER);
 
} // End of init_esp_parameter()

//====================================================================
/**
  * Starts energy measurement.
  *
  */
void start_measurement(void)
{
  // Set event message request flags: 

  set_parameter(mSET_EVENT, defSET_EVENT );

  total_energy = 0;

  MBCTL= IN0IE;
  
  // Start measurement (set Embedded Signal Processing into "Measurement" mode)
  MBOUT1= modeMEASURE; //ESP_MEASURE;
  MBOUT0= mSET_MODE;
  OP_Mode = measure;
} // End of start_measurement()

//====================================================================
//
//  * Starts calibration.
//  *
//
void start_calibration(void)
{
  volatile unsigned int timeout;
  //  /\  Prevend variable from being "optimized".

//
//  * ensure that it is not in measurement or calibration mode,
//
  if ((RET0 & 0x8000) != 0) 
  { 
    // Set Embedded Signal Processing into "Idle" mode
    MBOUT1= modeIDLE; // ESP_IDLE;
    MBOUT0= mSET_MODE;
    timeout= 0xffff;
    while (((RET0 & 0x8000) != 0) && (timeout-- > 0)) ;
  }

  total_energy= 0;

  // Set event message request flags: 
  set_parameter(mSET_EVENT,
                CALRDYME);  // Interrupt on "Calibration values ready"
  
  set_parameter(mSET_CALCYCLCNT, CalCyclCnt); // = set requested cycles for measurement

  // Start measurement (set Embedded Signal Processing into "Calibration" mode)
  set_parameter(mSET_MODE, modeCALIBRATION);
  OP_Mode = calibration;
} // End of start_measurement()


//====================================================================
/**
  * Interrupt service routine for messages sent by ESP430CE1.
  *
  */
#ifdef __IAR_SYSTEMS_ICC__
#if __VER__ < 200
interrupt[ESP430_VECTOR] void esp_isr(void)
#else
#pragma vector=ESP430_VECTOR
__interrupt void esp_isr( void )
#endif
#endif

#ifdef __CROSSWORKS__
void esp_isr(void)   __interrupt[ESP430_VECTOR] 
#endif
{
  unsigned int msg_data = MBIN1;
  unsigned int msg      = MBIN0;

#ifdef ExtIntLevel
unsigned int i = def_togglerepeat;
#endif

  P1OUT |= 0x01;    // set P1.0
  
  if (msg == mEVENT)
  {
    //
    //  * Get the Calibration data
    //
    if ((msg_data & CALRDYFG) == CALRDYFG) // Calibration data available
    {
        if ( OP_Mode == calibration)
        {
          energy.w[0] = ACTENERGY1_LO;
          energy.w[1] = ACTENERGY1_HI;
#ifdef withUARTComm
          TX_Mode = tx_cal;
#endif // withUARTComm
          OP_Mode = done;
          // Set Embedded Signal Processing into "Idle" mode
//          MBOUT1= modeIDLE; // ESP_IDLE;
          MBOUT1= modeMEASURE; //ESP_MEASURE;
          MBOUT0= mSET_MODE;
          
          msg_data = 0; // prevent that the other functions in the ISR are executed
        }
    } // End of if ((msg_data & CALRDY)

    msg_data = msg_data & defSET_EVENT ; //mask with event request mask

    //
    //  * Get the WFS
    //
//    if ((msg_data & WFSRDYFG)) // New Waveform Samples available
// WFS could always be copied
    {
        wfs1 = WAVEFSV1;
        wfs2 = WAVEFSI1;
        wfs3 = WAVEFSI2;   
    }

//
//  * Get Energy and create Pulses
//
#ifndef ExtIntLevel
    if ((msg_data & ILREACHEDFG)) // 
    {
        static unsigned int i = defSET_INTRPTLEVL_REPEAT;
        i--;
        if (i == 0)
        {
          P1OUT ^= 0x02;    // toggle P1.1
          i = defSET_INTRPTLEVL_REPEAT;
        }
    }
#else
    if (msg_data & ZXTRFG)
    {
        ZXLDFGedge = 1;
        if (sumenergy >= s_parameters.pSET_TOGGLELEVEL)
        {
            sumenergy -= s_parameters.pSET_TOGGLELEVEL;
            i--;
            if (i == 0)
            {
              P1OUT ^= 0x02;    // toggle P1.1
              i = s_parameters.pSET_TOGGLELEVEL;
            }
        }
    }
    if ((msg_data & ZXLDFG) && ZXLDFGedge)
    {
        
        ZXLDFGedge = 0;
        
        tempenergy.w[0] = ACTENSPER1_LO;
        tempenergy.w[1] = ACTENSPER1_HI;
        sumenergy += tempenergy.l;
        if (tempenergy.l > maxenergy) {maxenergy = tempenergy.l;};
        if (sumenergy >= s_parameters.pSET_TOGGLELEVEL)
        {
            sumenergy -= s_parameters.pSET_TOGGLELEVEL;
            i--;
            if (i == 0)
            {
              P1OUT ^= 0x02;    // toggle P1.1
              i = def_togglerepeat;
            }
        }
    }
#endif

/**
  * Accumulates the active energy depending on the tampering flag so
  * that always the "worst case" energy is calculated.
  */
    if ((msg_data & ENRDYFG)) // Tampering (I1 << I2 or I2 >> I1)?
//    if ((msg_data & ILREACHED) == ILREACHED) // Tampering (I1 << I2 or I2 >> I1)?
    {
      unsigned int i;
      unsigned int * a = (unsigned int *) RET0_;
      unsigned int * b = (unsigned int *) &savedRET[0];
      static unsigned char temp_count = Temp_repeat;
      
      
      for (i=0; i != ((RET31_ - RET0_)/2); i++)
      {
         *b++ = *a++;
      }
      
      if (!(msg_data & I2GTI1FG) ) // I1 > I2?
      {
        energy.w[0] = RET8;
        energy.w[1] = RET9;
      } else // I1 < I2!
      {
        energy.w[0] = ACTENERGY1_LO;
        energy.w[1] = ACTENERGY1_HI;
      }
      
      total_energy += (float)energy.l;

      //
      //  * The seconds are counted based on the ESP430CE1 energy ready interrupts.
      //
      temp_count--;
      if (temp_count == 0)
      {
        //
        //  * Every minute a temperature measurement is requested.
        //
        temp_count = Temp_repeat;
        MBOUT0= mTEMP;
      }  

      sys_status |= NewValues;           // set mark that new samples are available
      if (OP_Mode != idle) LPM3_EXIT;    // back to active mode after ISR

    } // End of if ((msg_data & ENRDY) 

  } // End of if (MBIN0 == mEVENT)  

  
  if (msg == mTEMPRDY)
  {
    //
    //  * The temperature is saved as soon as it is delivered by the ESP430.
    //
    temperature= msg_data;
  } 
  
  // Test if S1 was pressed
  if (P2IFG & 0x04)  
  {
      P2IFG &= ~0x04;  //clear flag
#ifdef withDisplay
      DisplayNextData(); //next display mode
#endif // withDisplay
  }

  // Test if S2 was pressed
  if (P2IFG & 0x08)  
  {
      P2IFG &= ~0x08;  //clear flag
      
      // Stop measurement (set Embedded Signal Processing into "Idle" mode)
      // Set Embedded Signal Processing into "Idle" mode
      MBOUT1= modeIDLE; // ESP_IDLE;
      MBOUT0= mSET_MODE;
      while ((RET0 & 0x8000) != 0); // Wait for Idle mode

      // Shut donw ESP (set Embedded Signal Processing into "Suspend" mode)
      // ensure that it is not in measurement or calibration mode,
      if ((RET0 & 0x8000) == 0) 
      { 
          ESPCTL |= ESPSUSP;   // Set ESP into Suspend Mode
//          ESPCTL = 0;            // Set ESP into Off Mode
      }

      // wait 10 clock till proper access to the SD16 is possilbe (9 clock are required)
      _NOP();_NOP();_NOP();_NOP();_NOP();
      _NOP();_NOP();_NOP();_NOP();_NOP();
      SD16CTL &= ~SD16REFON; // Switch Reference off
      OP_Mode = idle;
      DisplayIDLE();
      //LCD_OFF;        // Switch LCD off
      P2IE  |= 0x08;  //enable interrupt
      _BIS_SR_IRQ(LPM3_bits);   // not back to active mode after ISR
      
  }
  
  P1OUT &= ~0x01;    // clear P1.0

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合久久久| 精品国产伦一区二区三区免费| 亚洲日本一区二区| 色综合一个色综合| 亚洲高清不卡在线| 欧美一区二区大片| 国产一区二区在线视频| 国产精品私人自拍| 91国产福利在线| 人妖欧美一区二区| 久久久久久久久久美女| 91网上在线视频| 日韩电影在线观看网站| 国产亚洲精品资源在线26u| 成人av电影在线网| 亚洲成人自拍网| 欧美成人国产一区二区| 国产99久久久国产精品潘金| 亚洲欧美一区二区三区久本道91| 欧美日韩一区二区在线观看| 国产一区二区三区免费看| 国产精品美女久久久久久久网站| 欧美性生活久久| 国产一区二区调教| 一区二区三区四区不卡在线 | 卡一卡二国产精品| 国产精品视频在线看| 欧美视频中文字幕| 国产在线一区观看| 亚洲色图视频免费播放| 精品久久国产老人久久综合| 色狠狠色狠狠综合| 国产一区二区三区日韩| 亚洲精品一卡二卡| 国产农村妇女精品| 欧美精品vⅰdeose4hd| 风间由美中文字幕在线看视频国产欧美| 一级女性全黄久久生活片免费| 精品久久久久99| 欧美美女视频在线观看| 成人午夜私人影院| 国产综合久久久久久久久久久久| 亚洲最快最全在线视频| 国产日韩亚洲欧美综合| 这里是久久伊人| 91丨porny丨国产入口| 国产一区二区三区精品视频| 亚洲成人自拍网| 亚洲欧美区自拍先锋| 久久久精品黄色| 91精品欧美久久久久久动漫| 色先锋资源久久综合| 国产成人8x视频一区二区| 奇米888四色在线精品| 亚洲精品国产精华液| 国产欧美精品一区二区色综合 | 国产校园另类小说区| 欧美一区二区三区免费视频| 日本久久电影网| 99久久精品国产一区二区三区| 国产乱一区二区| 韩国av一区二区三区四区| 毛片av一区二区三区| 免费不卡在线观看| 青青草原综合久久大伊人精品| 亚洲成人精品一区二区| 亚洲综合网站在线观看| 亚洲精品日韩专区silk| 亚洲手机成人高清视频| 亚洲精品视频在线| 一区二区在线观看免费视频播放| 亚洲三级电影网站| 中文字幕中文字幕在线一区 | 亚洲第一激情av| 亚洲大片在线观看| 日本不卡一二三| 卡一卡二国产精品| 国产一区二区三区免费播放| 国产成人综合在线播放| 成人一区二区三区| 99久久777色| 欧美视频一区二区在线观看| 在线播放日韩导航| 精品少妇一区二区三区在线播放 | 欧美日韩亚州综合| 在线不卡欧美精品一区二区三区| 欧美高清视频www夜色资源网| 欧美精品一二三区| 精品国产免费一区二区三区香蕉| 久久久www成人免费无遮挡大片| 久久精品在线免费观看| 国产精品国产三级国产| 亚洲综合一区二区三区| 蜜臀久久99精品久久久久宅男 | 成人在线视频一区二区| jlzzjlzz欧美大全| 欧美色综合网站| 欧美一二三在线| 久久综合国产精品| 国产精品久久久久三级| 亚洲自拍偷拍av| 九色综合国产一区二区三区| 狠狠色丁香久久婷婷综合丁香| 国产91精品露脸国语对白| 91免费看片在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 秋霞影院一区二区| 国产精品中文字幕一区二区三区| 9久草视频在线视频精品| 欧美做爰猛烈大尺度电影无法无天| 91精品国产色综合久久不卡蜜臀 | 制服丝袜国产精品| 国产午夜精品一区二区| 亚洲国产成人av网| 久久精品国产亚洲一区二区三区| 成人激情免费视频| 欧美一三区三区四区免费在线看| 国产精品三级电影| 日韩电影免费在线看| av男人天堂一区| 日韩久久久精品| 一本一本大道香蕉久在线精品| 成人午夜在线视频| 欧美日韩国产中文| 欧美国产一区二区| 蜜臀va亚洲va欧美va天堂 | 亚洲国产激情av| 午夜精品视频在线观看| 国产99一区视频免费| 91精品一区二区三区久久久久久| 国产精品国产三级国产aⅴ原创 | 亚洲高清不卡在线| 成人app在线| 欧美成va人片在线观看| 夜夜爽夜夜爽精品视频| 粉嫩一区二区三区性色av| 日韩精品一区二区在线观看| 亚洲影视在线播放| 92精品国产成人观看免费| 国产亚洲女人久久久久毛片| 蜜桃久久久久久久| 欧美日韩在线播放一区| 亚洲另类在线视频| 成人精品视频网站| 久久一夜天堂av一区二区三区| 午夜精品视频一区| 欧美性极品少妇| 亚洲色图欧美偷拍| 高清不卡在线观看av| 久久尤物电影视频在线观看| 人人狠狠综合久久亚洲| 欧美精品久久天天躁| 亚洲午夜在线观看视频在线| 日本韩国一区二区三区视频| 亚洲欧洲韩国日本视频| 懂色av中文一区二区三区| 2021中文字幕一区亚洲| 九九视频精品免费| 精品精品国产高清a毛片牛牛 | 成人精品电影在线观看| 欧美一区二区黄| 蜜桃久久久久久久| 日韩美女视频一区二区在线观看| 日韩经典一区二区| 欧美精品一级二级三级| 日韩电影网1区2区| 日韩欧美国产精品| 蜜臀久久99精品久久久久久9| 欧美一级午夜免费电影| 蜜臀av一区二区在线免费观看| 91精品在线一区二区| 日韩福利电影在线| 欧美刺激脚交jootjob| 国产一区啦啦啦在线观看| 久久久精品国产免费观看同学| 国产精品69毛片高清亚洲| 国产清纯白嫩初高生在线观看91 | 日韩美一区二区三区| 精品无人码麻豆乱码1区2区 | 久久蜜桃香蕉精品一区二区三区| 国产在线精品视频| 中文一区二区在线观看| www.亚洲色图.com| 亚洲电影一级黄| 日韩欧美在线一区二区三区| 国产一区二区三区电影在线观看| 久久精品视频免费| 色综合色狠狠综合色| 午夜a成v人精品| 久久这里只有精品首页| 99久久亚洲一区二区三区青草| 一区二区高清免费观看影视大全| 正在播放一区二区| 国产精品888| 亚洲一区二区三区视频在线| 日韩欧美卡一卡二| 99视频国产精品| 日日夜夜精品免费视频| 国产精品网友自拍| 欧美精品一二三区|