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

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

?? esp.c

?? MSP430FE42X復費率電表DEMO(編譯器 IAR 3.42A)
?? C
字號:
/*****************************************************************
*                        模擬前端初始化函數                      *
*                                                                *
* 說明:配置SD16 ADC模塊                                         *
*       配置兩個電流通道和一個電壓通道,實現防竊電電表           *
*       電流通道I1使用錳銅分流器,電流通道I2使用電流互感器CT     ×
******************************************************************/
#define SD16CONF0_FUDGE     0xC0
#define SD16CONF1_FUDGE     0x40
void Init_Analog_Front_End_ESP(void)
{
  ESPCTL &= ~ESPEN;
  // 電網電壓存在,初始化模擬前端為ESP
  if((POWER_TEST_IN & POWER_TEST_BIT) == POWER_TEST_BIT)
  {
//  	  * 進行模擬前端的共性配置:
//  	  * 選擇時鐘原SMCLK
//  	  * 選擇時鐘原分頻系數,不同的主頻下分頻系數不同,分頻結果均為1.094MHz
//  	  * 選擇參考原


  	//SD16CTL= 0x800
  		//| SD16SSEL_1   // 時鐘原: SMCLK
    	//| SD16DIV_3   // 8分頻 => ADC clock: 1.094MHz
        //| SD16REFON;  // 選用內部參考原
    SD16CTL= 0x800
  		| SD16SSEL_1   // 時鐘原: SMCLK
    	| SD16DIV_3   // 8分頻 => ADC clock: 1.094MHz
        | SD16REFON;  // 選用內部參考原



// -------------------------------------------------------------------

//  *	配置電流通道I1
//  * 錳銅分流器
//  * 錳銅分流器電阻 Rs = 300 微歐
//  * 最大電流40A時
//  * 錳銅分流器的電壓有效值 VRs(RMS) = 0.3 * 40 = 12mV
//  * 錳銅分流器的電壓峰值 VRs(peak) = 16.97mV
//  * 當前置放大器放大倍數 GAIN = 16時, 最大輸入電壓 VIN = 16.97 * 16 = 271mV < 500mV
//  *                      GAIN = 32時, 最大輸入電壓 VIN = 16.97 * 32 = 543mV > 500mV
//  * 所以選擇電流通道I1的放大倍數 GAIN = 16
//  *
//  */

#if SD16I1GAIN==1
    SD16INCTL0= SD16GAIN_1; // 設置電流通道I1的增益放大倍數GAIN = 1
#elif SD16I1GAIN==2
    SD16INCTL0= SD16GAIN_2;
#elif SD16I1GAIN==4
    SD16INCTL0= SD16GAIN_4;
#elif SD16I1GAIN==8
    SD16INCTL0= SD16GAIN_8;
#elif SD16I1GAIN==16
    SD16INCTL0= SD16GAIN_16;
#elif SD16I1GAIN==32
    SD16INCTL0= SD16GAIN_32;
#else
    SD16INCTL0= SD16GAIN_1;
#endif

    SD16CCTL0 = SD16OSR_256;       // 設置電流通道I1過采樣率為 256
    SD16CCTL0 = SD16OSR_256 + SD16GRP;
		//SD16CCTL0 = SD16OSR_256 + SD16DF + SD16GRP;
// -------------------------------------------------------------------

//  * 配置電流通道I2
//  * 電流互感器CT
//  * 此通道暫時短接不用
#if SD16I2GAIN==1
    SD16INCTL1= SD16GAIN_1; // 設置電流通道I2的增益放大倍數GAIN = 1
#elif SD16I2GAIN==2
    SD16INCTL1= SD16GAIN_2;
#elif SD16I2GAIN==4
    SD16INCTL1= SD16GAIN_4;
#elif SD16I2GAIN==8
    SD16INCTL1= SD16GAIN_8;
#elif SD16I2GAIN==16
    SD16INCTL1= SD16GAIN_16;
#elif SD16I2GAIN==32
    SD16INCTL1= SD16GAIN_32;
#else
    SD16INCTL1= SD16GAIN_1;
#endif

    //SD16CCTL1 = SD16OSR_256;      // 設置電流通道I2過采樣率為 256
    SD16CCTL1 = SD16OSR_256 + SD16GRP;
		//SD16CCTL1 = SD16OSR_256 + SD16DF + SD16GRP;

// -----------------------------------------------------------
//
//  *	配置電壓通道
//  * 電阻分壓,最大輸入電壓 VIN=(220 + 220*0.2)  * (1/991)*1.414 = 376 mV
//  * 選擇增益放大倍速 GAIN = 1
//  */

  	SD16INCTL2= SD16GAIN_1;// 設置電壓通道V1的增益放大倍數GAIN = 1
		
  	//SD16CCTL2 = SD16OSR_256 + SD16GRP;     // 設置電壓通道V1過采樣率為 256
		SD16CCTL2 = SD16OSR_256 + SD16DF + SD16GRP;     // 設置電壓通道V1過采樣率為 256


  	SD16CONF0 = SD16CONF0_FUDGE;
    SD16CONF1 = SD16CONF1_FUDGE;
  }

  else
  {
    //SD16CTL = 0x800
    //      | SD16VMIDON  // 溫度傳感器使能
    //      | SD16SSEL_1  // 時鐘原選擇 SMCLK
    //      | SD16DIV_3   // 時鐘原8分頻,ADC clock: 1.048576MHz
    //      | SD16REFON;  // 使用內部參考

    //SD16CTL = 0x800
          //| SD16VMIDON  // 溫度傳感器使能
          //| SD16SSEL_1  // 時鐘原選擇 SMCLK
          //| SD16DIV_3   // 時鐘原8分頻,ADC clock: 1.048576MHz
          //| SD16REFON;  // 使用內部參考


  	  SD16INCTL0 = 0;
  	  SD16CCTL0 = 0;
  	  SD16PRE0 = 0;

  	  SD16INCTL1 = 0;
  	  SD16CCTL1 = 0;
  	  SD16PRE1 = 0;

  	  SD16INCTL2 = SD16INCH_6 | SD16GAIN_1;   /* 選擇溫度傳感器通道 */
  	  SD16CCTL2 = SD16DF | SD16SNGL | SD16IE; /* 過采樣率為 256 */
  	  SD16PRE2 = 0;
  }
} // 模擬前端初始化函數結束

/*********************************************************************
*                       設置ESP430CE1模塊參數函數                    *
*                                                                    *
* 參數寄存器地址送入\a param                                         *
* 設置的內容送入\a data                                              *
*                                                                    *
*********************************************************************/
void Set_Parameter(unsigned int param, unsigned int data)
{
  	unsigned int timeout= 0xffff; //定義超時溢出計數寄存器

  	MBOUT1= data;      // 寫本次郵箱發送的數據
  	MBOUT0= param;     // 寫本次郵箱發送的地址
  	do
  	{
    	//等待ESP430CE1的反饋信息
    	while (((MBCTL & IN0IFG) == 0) && (timeout-- > 0)) ;
    	if (timeout == 0)
    	{
    		//display(ERROR);
    		return;
    	}
    	//判斷反饋消息是否與發送的內容相符
  	} while ((MBIN0 != mPARAMSET) || (MBIN1 != param));
}  // End of Set_Parameter()


/********************************************************************
*                        初始化ESP430CE1模塊                        *
*                                                                   *
********************************************************************/
void Init_ESP_Parameter(void)
{
	// 定義超時溢出計數寄存器
	unsigned int timeout,i;
  	// 確信嵌入式處理器在使能狀態

  	ESPCTL |= ESPEN;
  	MBCTL = 0;

  	// 初始化前需要保證ESP不在測量狀態或者校準狀態
  	if ((ESP430_STAT0 & ACTIVEFG) != 0)
  	{
    	// 如果不是在空閑狀態,則使它進入空想狀態
    	MBOUT1= modeIDLE;
    	MBOUT0= mSET_MODE;
    	timeout= 0xffff;
    	// 等待進入空閑狀態,以便后續的設置
    	while (((ESP430_STAT0 & ACTIVEFG) != 0) && (timeout-- > 0)) ;
  	}

  	MBOUT1 = 0;
  	MBOUT0 = modeRESET;

  	for(i=0;i<50000;i++);

  		
  	// 讀ESP軟件版本號
  	MBOUT0= mSWVERSION;
  	timeout= 0xffff;
  	do
  	{
    	while (((MBCTL & IN0IFG) == 0) && (timeout-- > 0)) ;
    	if (timeout == 0)
    	{
    		//display(ERROR);
    		return;
    	}
  	} while (MBIN0 != mSWRDY);
	
	/*************** 初始化參數寄存器 ******************/

  	// 配置參數寄存器Control 0
  	Set_Parameter(mSET_CTRL0,defSET_CTRL0);     //

  	

  	
  	// 設置相位校正寄存器
    Set_Parameter(mSET_PHASECORR1,SM.Cfg.EspPar.iPhaseCorr1);
#ifdef TAMPER_DETECTION
    Set_Parameter(mSET_PHASECORR2,SM.Cfg.EspPar.iPhaseCorr2);
#endif

#ifdef TAMPER_DETECTION
  	// 設置兩電流通道自適應因子
    Set_Parameter(mSET_ADAPTI1, SM.Cfg.EspPar.uiAdaptI1);
    Set_Parameter(mSET_ADAPTI2, SM.Cfg.EspPar.uiAdaptI2);
#endif
  	
  	Set_Parameter(mSET_GAINCORR1, SM.Cfg.EspPar.uiGainCorr1);
#ifdef TAMPER_DETECTION
    Set_Parameter(mSET_GAINCORR2, SM.Cfg.EspPar.uiGainCorr2);
#endif
    Set_Parameter(mSET_POFFSET1_LO, *(int*)(&SM.Cfg.EspPar.lPowerOffset1));
  	Set_Parameter(mSET_POFFSET1_HI, *(((int*)(&SM.Cfg.EspPar.lPowerOffset1))+1));
#ifdef TAMPER_DETECTION
    Set_Parameter(mSET_POFFSET2_LO, *(int*)(&SM.Cfg.EspPar.lPowerOffset2));
  	Set_Parameter(mSET_POFFSET2_HI, *(((int*)(&SM.Cfg.EspPar.lPowerOffset2))+1));
#endif
		
#if	PULSE_MEASURE_MODE==2	
	  Set_Parameter(mSET_INTRPTLEVL_LO, *(int*)(&SM.Cfg.EspPar.ulIntrptLevl));
  	Set_Parameter(mSET_INTRPTLEVL_HI, *(((int*)(&SM.Cfg.EspPar.ulIntrptLevl))+1));
#endif		

    //Set_Parameter(mSET_CALCYCLCNT, CALCYCLCNT_INIT);

    Set_Parameter(mSET_STARTCURR_FRAC, *(int*)(&SM.Cfg.EspPar.ulStartCurrent));
    Set_Parameter(mSET_STARTCURR_INT, *(((int*)(&SM.Cfg.EspPar.ulStartCurrent))+1));

    // 設置電網正常頻率 50Hz
  	Set_Parameter(mSET_NOMFREQ, SM.Cfg.EspPar.uiNomFreq);

    //Set_Parameter(mSET_VDROPCYCLS, VDROPCYCLS_INIT);



#ifdef TAMPER_DETECTION
    Set_Parameter(mSET_RATIOTAMP, RATIOTAMP_INIT);	
  	Set_Parameter(mSET_ITAMP, ITAMP_INIT);
#endif  	

    Set_Parameter(mSET_VDROPLEVEL, VDROPLEVEL_INIT);

  	Set_Parameter(mSET_VPEAKLEVEL, VPEAKLEVEL_INIT);

    Set_Parameter(mSET_IPEAKLEVEL, IPEAKLEVEL_INIT);

    Set_Parameter(mSET_DCREMPER, DCREMPER_INIT);

 } // End of init_esp_parameter()


/*******************************************************************
*                         這個函數使ESP進入測量狀態                *
*******************************************************************/
void Start_Measurement(void)
{
   	Set_Parameter(mSET_EVENT,
                defSET_EVENT);  // 當事件<新的能量值準備好>發生時發出中斷請求

  	MBCTL= IN0IE;	//接收郵箱0中斷使能

  	//_EINT();

  	// 開始測量(使ESP進入測量模式)
  	MBOUT1= modeMEASURE;
  	MBOUT0= mSET_MODE;
#ifdef PULSE_TIMEA_GEN
        TACCR0 = TAR + TIMERA_PULSE_PERIOD;
 	TACCTL0 = CCIE;
#endif
} // End of start_measurement()


void Set_IdleMode(void)
{
   unsigned int timeout= 0xffff;

  MBCTL = 0;

  if ((ESP430_STAT0 & ACTIVEFG) != 0)
  	{
    	// 如果不是在空閑狀態,則使它進入空想狀態
    	MBOUT1= modeIDLE;
    	MBOUT0= mSET_MODE;
    	timeout= 0xffff;
    	// 等待進入空閑狀態,以便后續的設置
    	while (((ESP430_STAT0 & ACTIVEFG) != 0) && (timeout-- > 0)) ;
  	}
#ifdef PULSE_TIMEA_GEN
 	TACCTL0 = 0;
#endif
}

void Start_Calibration(void)
{
    Set_Parameter(mSET_EVENT,
                CALRDYME);  // 當事件<新的能量值準備好>發生時發出中斷請求

    do
    {
      MBOUT1 = mSET_EVENT;
      MBOUT0 = mREAD_PARAM;
    }while(MBIN0!=mPARAMRDY&&MBIN1!=CALRDYME);

  	//_EINT();

  	// 開始測量(使ESP進入測量模式)
  	MBOUT1= modeCALIBRATION;
    MBOUT0= mSET_MODE;

    MBCTL= IN0IE;	//接收郵箱0中斷使能
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99国产精品免费网站| 99免费精品在线| 久久久99精品免费观看| 国产99一区视频免费| 专区另类欧美日韩| 在线看日本不卡| 日韩成人一区二区三区在线观看| 欧美一区二区美女| 国模一区二区三区白浆| 国产网红主播福利一区二区| 97se亚洲国产综合自在线不卡| 亚洲卡通动漫在线| 69久久99精品久久久久婷婷| 久久99精品国产| 亚洲欧美在线视频观看| 欧美探花视频资源| 久久av资源站| 国产精品二三区| 欧美在线啊v一区| 久久av老司机精品网站导航| 欧美激情一区二区| 欧美伊人久久大香线蕉综合69| 美国av一区二区| 一色桃子久久精品亚洲| 欧美色偷偷大香| 国产尤物一区二区| 亚洲欧美日韩电影| 日韩一区二区三区视频| 成人视屏免费看| 亚洲福利一二三区| 久久久久亚洲综合| 欧洲激情一区二区| 精品无码三级在线观看视频| 亚洲图片你懂的| 91精品免费在线| 成人成人成人在线视频| 午夜成人在线视频| 国产精品入口麻豆九色| 欧美精品久久一区二区三区| 国产成人在线影院| 亚洲aⅴ怡春院| 国产欧美1区2区3区| 欧美日本在线视频| 国产成人无遮挡在线视频| 亚洲图片欧美一区| 国产欧美日韩激情| 8v天堂国产在线一区二区| 国产999精品久久久久久| 亚洲日本青草视频在线怡红院| 日韩午夜三级在线| 91成人免费网站| 丰满白嫩尤物一区二区| 日韩高清不卡一区二区三区| 国产精品久久久久影院老司| 日韩欧美一级片| 欧美午夜视频网站| 成人免费视频caoporn| 美脚の诱脚舐め脚责91| 一级女性全黄久久生活片免费| 久久久久久日产精品| 欧美在线小视频| 风间由美一区二区三区在线观看 | 欧美成人一区二区| 91丨porny丨户外露出| 国内精品伊人久久久久影院对白| 亚洲国产毛片aaaaa无费看| 日本一区二区三区dvd视频在线| 欧美一卡二卡在线观看| 色天使久久综合网天天| 国产aⅴ综合色| 国内久久精品视频| 奇米色一区二区| 亚洲图片欧美色图| 亚洲丝袜精品丝袜在线| 欧美激情一区在线观看| 久久亚洲影视婷婷| 91精品国产91久久久久久最新毛片| 色域天天综合网| 成人高清视频在线| 麻豆精品在线观看| 图片区小说区区亚洲影院| 一区二区三区欧美视频| 国产精品国产三级国产普通话蜜臀| 久久综合一区二区| 精品三级在线看| 欧美一级理论性理论a| 欧美精品黑人性xxxx| 欧美在线观看18| 欧美曰成人黄网| 欧美亚洲国产一区在线观看网站| 色综合一区二区| 久久人人爽爽爽人久久久| 欧美一区二区视频在线观看2022| 欧美午夜精品电影| 在线看日本不卡| 在线免费观看视频一区| 在线欧美日韩国产| 日本韩国欧美一区二区三区| av电影天堂一区二区在线| 成人激情开心网| 成人h版在线观看| 不卡区在线中文字幕| 成人91在线观看| 91影院在线观看| 91在线丨porny丨国产| 91麻豆国产在线观看| 91浏览器在线视频| 色拍拍在线精品视频8848| 色一情一乱一乱一91av| 一本高清dvd不卡在线观看| 91国产福利在线| 欧美丝袜丝nylons| 欧美日韩国产精品成人| 51精品视频一区二区三区| 欧美一二三区在线| 精品国产乱码久久久久久浪潮| 精品国产91乱码一区二区三区| 精品国产百合女同互慰| 久久久亚洲午夜电影| 国产精品色噜噜| 最新久久zyz资源站| 1024亚洲合集| 亚洲国产aⅴ天堂久久| 奇米四色…亚洲| 国产剧情一区二区| 成人精品电影在线观看| 色香蕉成人二区免费| 欧美日韩一区成人| 日韩欧美三级在线| 国产丝袜欧美中文另类| ...xxx性欧美| 亚洲国产乱码最新视频| 老司机精品视频线观看86 | 毛片不卡一区二区| 国精产品一区一区三区mba视频| 国产成人在线视频播放| 99视频精品在线| 欧美色窝79yyyycom| 精品久久久三级丝袜| 国产欧美日韩三级| 亚洲一区二区3| 美女一区二区三区| 成人av在线播放网站| 欧美视频在线播放| 精品欧美黑人一区二区三区| 国产精品久久久久一区二区三区| 亚洲一区成人在线| 精品无码三级在线观看视频| 99久久精品免费| 在线综合视频播放| 国产欧美日韩在线视频| 亚洲一区二三区| 久久97超碰国产精品超碰| 成人免费的视频| 欧美日韩国产影片| 久久免费美女视频| 亚洲三级在线免费| 秋霞影院一区二区| 国产成人精品一区二区三区四区 | 久久婷婷一区二区三区| 亚洲三级在线播放| 日韩激情视频网站| 丁香激情综合五月| 欧美精选在线播放| 国产精品视频第一区| 丝袜诱惑亚洲看片| www.66久久| 欧美伦理影视网| 国产精品午夜春色av| 日韩精品三区四区| 国产a区久久久| 欧美一区二区在线免费观看| 欧美激情自拍偷拍| 午夜国产精品影院在线观看| 岛国精品在线观看| 欧美日韩一区 二区 三区 久久精品| 国产丝袜在线精品| 亚洲国产cao| 国产99久久久国产精品潘金| 欧美日精品一区视频| 亚洲国产高清不卡| 男人操女人的视频在线观看欧美| www.亚洲在线| 欧美va在线播放| 亚洲精选视频免费看| 国产精品一品二品| 色av成人天堂桃色av| 国产欧美一区二区三区网站| 免费看日韩a级影片| 成人黄色免费短视频| 91精品欧美综合在线观看最新| 欧美激情中文不卡| 首页亚洲欧美制服丝腿| bt欧美亚洲午夜电影天堂| 在线免费不卡视频| 欧美激情综合五月色丁香| 日韩高清不卡在线| 福利一区福利二区| 精品噜噜噜噜久久久久久久久试看| 一区二区三区四区激情|