中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 以32位MCU-HY16F198實現(xiàn)AC電流量測應用

        以32位MCU-HY16F198實現(xiàn)AC電流量測應用

        作者: 時間:2015-03-30 來源:電子產(chǎn)品世界 收藏

          軟件說明

        本文引用地址:http://www.antipu.com.cn/article/271787.htm

          程序流程圖

          函式使用說明 :

          1. void AC_DataCount(int index, int ADC_Data) : 把量測到的ADC Data轉(zhuǎn)換成AC Data。

          int index : 代表所量測到的ADC Data資料筆數(shù)。

          int ADC_Data : 使用 ADC所量測到的ADC Data數(shù)值。

          2. long long AC_Algorithm(void) : AC Data透過交流信號算法計算出電流數(shù)值。

          一、 范例程序

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

          /* MAIN function */

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

          int main(void)

          {

          long long AC_Value;

          DisplayInit();

          ClearLCDframe();

          Delay(10000);

          DisplayHYcon();

          Delay(1000);

          MCUSTATUSbits._byte = 0;

          Count=0;

          InitalADC();

          SYS_EnableGIE(7,0x1FF); //Enable GIE(Global Interrupt)

          while(1)

          {

          if(MCUSTATUSbits.b_ADCdone) //b_ADCdone=1 execute below

          {

          MCUSTATUSbits.b_ADCdone=0;

          AC_Value = AC_Algorithm(); // To do AC algorithm and to show current value

          AC_Value=AC_Value/0.5770; // Using 60HZ gain value, calibrate at 2000mA

          LCD_DATA_DISPLAY(AC_Value); //Display AC Value

          Count=0;

          DrvADC_CombFilter(0);

          DrvADC_ClearIntFlag();

          DrvADC_EnableInt();

          DrvADC_CombFilter(1);

          }

          }

          return 0;

          }

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

          /* ADC Interrupt Subroutines */

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

          void HW2_ISR(void)

          {

          int ADCData;

          if(DrvADC_ReadIntFlag())

          {

          DrvADC_ClearIntFlag();

          ADCData=DrvADC_GetConversionData();

          AC_DataCount(Count++,ADCData); // AC Algorithm : to get ADCData

          if(Count>=AC_DataLen) //to do 4096 times

          {

          DrvADC_DisableInt();

          MCUSTATUSbits.b_ADCdone=1;

          }

          }

          }

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

          /* ADC Initialization Subroutines */

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

          void InitalADC(void)

          {

          //Set ADC input pin

          DrvADC_SetADCInputChannel(ADC_Input_AIO1,ADC_Input_AIO0); //Set the ADC positive/negative input voltage source.

          DrvADC_InputSwitch(OPEN); //ADC signal input (positive and negative) short(VISHR) control.

          DrvADC_RefInputShort(OPEN); //Set the ADC reference input (positive and negative) short(VRSHR) control.

          DrvADC_Gain(ADC_PGA_Disable,ADC_PGA_Disable); //Input signal gain for modulator.

          DrvADC_DCoffset(0); //DC offset input voltage selection (VREF=REFP-REFN)

          DrvADC_RefVoltage(VDDA,VSSA); //Set the ADC reference voltage.

          DrvADC_FullRefRange(1); //Set the ADC full reference range select.

          //0: Full reference range input

          //1: 1/2 reference range input

          DrvADC_OSR(10); //10 : OSR=32

          DrvADC_CombFilter(ENABLE); //Enable OSR

          DrvADC_ClkEnable(0,1); //Setting ADC CLOCK ADCK=HS_CK/6 & Rising edge is high

          //Set VDDA voltage

          DrvPMU_VDDA_LDO_Ctrl(E_VDD3V);

          DrvPMU_BandgapEnable();

          DrvPMU_REFO_Enable();

          DrvPMU_AnalogGround(ENABLE); //ADC analog ground source selection.

          //1 : Enable buffer and use internal source(need to work with ADC)

          //Set ADC interrupt

          DrvADC_EnableInt();

          DrvADC_ClearIntFlag();

          DrvADC_Enable();

          }

          二、 參考文獻

          [1] http://www.winson.com.tw/Data%20Sheet/.pdf, Hall Sensor Datasheet

          [2] http://www.hycontek.com/attachments/MSP/DS-_TC.pdf, 纮康科技 Datasheet.

          [3] http://www.hycontek.com/attachments/MSP/UG-HY16F198_TC.pdf, 纮康科技HY16F198 User Guide.

        adc相關文章:adc是什么



        上一頁 1 2 下一頁

        關鍵詞: HY16F198 WCS1800

        評論


        技術(shù)專區(qū)

        關閉