forked from SZV10X_Software/SZV103_FM33A0xxEV_SiZhu

wujiazhi
2024-06-13 72def895431ad7a08e635b11f3da738e2b2c4618
HARDWARE/ADC/ADC.c
@@ -1,230 +1,201 @@
#include "adc.h"
#include "gpio.h"
#include "power_manage.h"
// ÄÚ²¿ÀÛ¼Ó  Î¶ÈбÂÊ
// float  const_TmpeK   = 4.5295;  //0X640 ADCбÂÊ
// float  const_30_top   = 30.0;
//ÄÚ²¿ÀÛ¼Ó  Î¶ÈбÂÊ
//float  const_TmpeK   = 4.5295;  //0X640 ADCбÂÊ
//float  const_30_top   = 30.0;
// ÍⲿÀÛ¼Ó  Î¶ÈбÂÊ
float const_TmpeK_14BIT = 23.0247; // 14BIT ADCбÂÊ
float const_30_top = 30.0;
void ADC_LithIO_Init(void)
{
  CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý
  //   AnalogIO(LIT_PWR_UNDER_PORT,LIT_PWR_UNDER_PIN);//ADC_5
  //   GPIOx_ANEN_Setable(LIT_PWR_UNDER_PORT,LIT_PWR_UNDER_PIN,ENABLE);
  AnalogIO(LIT_ADC_PORT, LIT_ADC_PIN); // ADC_IN4
  GPIOx_ANEN_Setable(LIT_ADC_PORT, LIT_ADC_PIN, ENABLE);
}
//ÍⲿÀÛ¼Ó  Î¶ÈбÂÊ
float  const_TmpeK_14BIT   = 23.0247;                  //14BIT ADCбÂÊ
float  const_30_top   = 30.0;
//void ADC_LithIO_Init(void)
//{
//   CMU_PERCLK_SetableEx(PADCLK, ENABLE);  //PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý
////   AnalogIO(LIT_PWR_UNDER_PORT,LIT_PWR_UNDER_PIN);//ADC_5
////   GPIOx_ANEN_Setable(LIT_PWR_UNDER_PORT,LIT_PWR_UNDER_PIN,ENABLE);
//   AnalogIO(LIT_ADC_PORT,LIT_ADC_PIN);//ADC_IN4
//   GPIOx_ANEN_Setable(LIT_ADC_PORT,LIT_ADC_PIN,ENABLE);
//}
//void ADC_AlkaIO_Init(void)
//{
//   CMU_PERCLK_SetableEx(PADCLK, ENABLE);  //PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý
//   AnalogIO_H(ALK_ADC_PIN);//ADC_IN8
////   GPIOx_ANEN_Setable(ALK_ADC_PORT,ALK_ADC_PIN,ENABLE);  //?ûÓÐH¿Ú£¬ÔÝʱ²»ÖªµÀÔõô´¦Àí
//}
void ADC_AlkaIO_Init(void)
{
  CMU_PERCLK_SetableEx(PADCLK, ENABLE); // PADʱÖÓ£¨GPIO£©Ê¹Äܺ¯Êý
  AnalogIO(ALK_ADC_PORT, ALK_ADC_PIN);  // ADC_IN8
  GPIOx_ANEN_Setable(ALK_ADC_PORT, ALK_ADC_PIN, ENABLE);
}
void ADC_IN5_Init(void)
{
   CDIF_CR_INTF_EN_Setable(ENABLE);                  //¿çµçÔ´Óò½Ó¿ÚʹÄÜ
   VRTC_Init_RCMF_Trim();
   VRTC_RCMFCR_EN_Setable(ENABLE);
   VRTC_ADCCR_CKS_Set(VRTC_ADCCR_CKS_RCMF_2);            //ADC¹¤×÷ʱÖÓÑ¡Ôñ
   VRTC_ADCCR_CKE_Setable(ENABLE);                     //ADC¹¤×÷ʱÖÓʹÄÜ
   ADC_CFGR_BUFSEL_Set(ADC_CFGR_BUFSEL_ADC_IN5);         //ADCÊäÈëͨµÀÑ¡Ôñ
   ADC_CFGR_BUFEN_Setable(ENABLE);                     //ADCÊäÈëͨµÀbufferʹÄÜ/½ûÖ¹
   ADC_CR_MODE_Set(ADC_CR_MODE_EXTERNAL);               //ADC¹¤×÷ģʽѡÔñÍⲿÀÛ¼ÓÆ÷
   ADC_CR_RSTCTRL_EN_Setable(ENABLE);                   //ÔÊÐí»ý·ÖÆ÷Íⲿ¸´Î»
   ADC_CFGR_ACC_PERIOD_Set(ADC_CFGR_ACC_PERIOD_14BITS);    //ÍⲿÀÛ¼ÓÆ÷ÀÛ¼ÓÖÜÆÚÅäÖÃ
   ADC_CR_HPEN_Set(ADC_CR_HPEN_1MHZ);
  ADC_TRIM_Write(0X7FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä4ms
//    ADC_TRIM_Write(0X3FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä2ms
//   ADC_TRIM_Write(0X1FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä1ms
   ADC_CR_ACC_IE_Setable(DISABLE);                     //ÍⲿÀÛ¼ÓģʽÖжϽûÖ¹
   ADC_CR_EN_Setable(DISABLE);                        //ADC¹Ø±Õ
}
  CDIF_CR_INTF_EN_Setable(ENABLE); // ¿çµçÔ´Óò½Ó¿ÚʹÄÜ
  VRTC_Init_RCMF_Trim();
  VRTC_RCMFCR_EN_Setable(ENABLE);
  VRTC_ADCCR_CKS_Set(VRTC_ADCCR_CKS_RCMF_2);    // ADC¹¤×÷ʱÖÓÑ¡Ôñ
  VRTC_ADCCR_CKE_Setable(ENABLE);               // ADC¹¤×÷ʱÖÓʹÄÜ
  ADC_CFGR_BUFSEL_Set(ADC_CFGR_BUFSEL_ADC_IN5); // ADCÊäÈëͨµÀÑ¡Ôñ
void ADC_IN4_Init(void)
{
   CDIF_CR_INTF_EN_Setable(ENABLE);                  //¿çµçÔ´Óò½Ó¿ÚʹÄÜ
   VRTC_Init_RCMF_Trim();
   VRTC_RCMFCR_EN_Setable(ENABLE);
   VRTC_ADCCR_CKS_Set(VRTC_ADCCR_CKS_RCMF_2);            //ADC¹¤×÷ʱÖÓÑ¡Ôñ
   VRTC_ADCCR_CKE_Setable(ENABLE);                     //ADC¹¤×÷ʱÖÓʹÄÜ
   ADC_CFGR_BUFSEL_Set(ADC_CFGR_BUFSEL_ADC_IN4);         //ADCÊäÈëͨµÀÑ¡Ôñ
   ADC_CFGR_BUFEN_Setable(ENABLE);                     //ADCÊäÈëͨµÀbufferʹÄÜ/½ûÖ¹
   ADC_CR_MODE_Set(ADC_CR_MODE_EXTERNAL);               //ADC¹¤×÷ģʽѡÔñÍⲿÀÛ¼ÓÆ÷
   ADC_CR_RSTCTRL_EN_Setable(ENABLE);                   //ÔÊÐí»ý·ÖÆ÷Íⲿ¸´Î»
   ADC_CFGR_ACC_PERIOD_Set(ADC_CFGR_ACC_PERIOD_14BITS);    //ÍⲿÀÛ¼ÓÆ÷ÀÛ¼ÓÖÜÆÚÅäÖÃ
   ADC_CR_HPEN_Set(ADC_CR_HPEN_1MHZ);
  ADC_TRIM_Write(0X7FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä4ms
//    ADC_TRIM_Write(0X3FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä2ms
//   ADC_TRIM_Write(0X1FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä1ms
   ADC_CR_ACC_IE_Setable(DISABLE);                     //ÍⲿÀÛ¼ÓģʽÖжϽûÖ¹
   ADC_CR_EN_Setable(DISABLE);                        //ADC¹Ø±Õ
}
  ADC_CFGR_BUFEN_Setable(ENABLE);                      // ADCÊäÈëͨµÀbufferʹÄÜ/½ûÖ¹
  ADC_CR_MODE_Set(ADC_CR_MODE_EXTERNAL);               // ADC¹¤×÷ģʽѡÔñÍⲿÀÛ¼ÓÆ÷
  ADC_CR_RSTCTRL_EN_Setable(ENABLE);                   // ÔÊÐí»ý·ÖÆ÷Íⲿ¸´Î»
  ADC_CFGR_ACC_PERIOD_Set(ADC_CFGR_ACC_PERIOD_14BITS); // ÍⲿÀÛ¼ÓÆ÷ÀÛ¼ÓÖÜÆÚÅäÖÃ
  ADC_CR_HPEN_Set(ADC_CR_HPEN_1MHZ);
void ADC_IN8_Init(void)
{
   CDIF_CR_INTF_EN_Setable(ENABLE);                  //¿çµçÔ´Óò½Ó¿ÚʹÄÜ
   VRTC_Init_RCMF_Trim();
   VRTC_RCMFCR_EN_Setable(ENABLE);
   VRTC_ADCCR_CKS_Set(VRTC_ADCCR_CKS_RCMF_2);            //ADC¹¤×÷ʱÖÓÑ¡Ôñ
   VRTC_ADCCR_CKE_Setable(ENABLE);                     //ADC¹¤×÷ʱÖÓʹÄÜ
   ADC_CFGR_BUFSEL_Set(ADC_CFGR_BUFSEL_ADC_IN8);         //ADCÊäÈëͨµÀÑ¡Ôñ
   ADC_CFGR_BUFEN_Setable(ENABLE);                     //ADCÊäÈëͨµÀbufferʹÄÜ/½ûÖ¹
   ADC_CR_MODE_Set(ADC_CR_MODE_EXTERNAL);               //ADC¹¤×÷ģʽѡÔñÍⲿÀÛ¼ÓÆ÷
   ADC_CR_RSTCTRL_EN_Setable(ENABLE);                   //ÔÊÐí»ý·ÖÆ÷Íⲿ¸´Î»
   ADC_CFGR_ACC_PERIOD_Set(ADC_CFGR_ACC_PERIOD_14BITS);    //ÍⲿÀÛ¼ÓÆ÷ÀÛ¼ÓÖÜÆÚÅäÖÃ
   ADC_CR_HPEN_Set(ADC_CR_HPEN_1MHZ);
  ADC_TRIM_Write(0X7FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä4ms
//    ADC_TRIM_Write(0X3FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä2ms
//   ADC_TRIM_Write(0X1FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä1ms
   ADC_CR_ACC_IE_Setable(DISABLE);                     //ÍⲿÀÛ¼ÓģʽÖжϽûÖ¹
   ADC_CR_EN_Setable(DISABLE);                        //ADC¹Ø±Õ
  ADC_TRIM_Write(0X7FF); // adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä4ms
  //  ADC_TRIM_Write(0X3FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä2ms
  //   ADC_TRIM_Write(0X1FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä1ms
  ADC_CR_ACC_IE_Setable(DISABLE); // ÍⲿÀÛ¼ÓģʽÖжϽûÖ¹
  ADC_CR_EN_Setable(DISABLE);     // ADC¹Ø±Õ
}
void ADC_IN10_Init(void)
{
   CDIF_CR_INTF_EN_Setable(ENABLE);                  //¿çµçÔ´Óò½Ó¿ÚʹÄÜ
   VRTC_Init_RCMF_Trim();
   VRTC_RCMFCR_EN_Setable(ENABLE);
   VRTC_ADCCR_CKS_Set(VRTC_ADCCR_CKS_RCMF_2);            //ADC¹¤×÷ʱÖÓÑ¡Ôñ
   VRTC_ADCCR_CKE_Setable(ENABLE);                     //ADC¹¤×÷ʱÖÓʹÄÜ
   ADC_CFGR_BUFSEL_Set(ADC_CFGR_BUFSEL_ADC_IN10);         //ADCÊäÈëͨµÀÑ¡Ôñ
   ADC_CFGR_BUFEN_Setable(ENABLE);                     //ADCÊäÈëͨµÀbufferʹÄÜ/½ûÖ¹
   ADC_CR_MODE_Set(ADC_CR_MODE_EXTERNAL);               //ADC¹¤×÷ģʽѡÔñÍⲿÀÛ¼ÓÆ÷
   ADC_CR_RSTCTRL_EN_Setable(ENABLE);                   //ÔÊÐí»ý·ÖÆ÷Íⲿ¸´Î»
   ADC_CR_HPEN_Set(ADC_CR_HPEN_1MHZ);
  ADC_TRIM_Write(0X7FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä4ms
//    ADC_TRIM_Write(0X3FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä2ms
//   ADC_TRIM_Write(0X1FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä1ms
  ADC_CFGR_ACC_PERIOD_Set(ADC_CFGR_ACC_PERIOD_14BITS);    //ÍⲿÀÛ¼ÓÆ÷ÀÛ¼ÓÖÜÆÚÅäÖÃ
   ADC_CR_ACC_IE_Setable(DISABLE);                     //ÍⲿÀÛ¼ÓģʽÖжϽûÖ¹
   ADC_CR_EN_Setable(DISABLE);                        //ADC¹Ø±Õ
  CDIF_CR_INTF_EN_Setable(ENABLE); // ¿çµçÔ´Óò½Ó¿ÚʹÄÜ
  VRTC_Init_RCMF_Trim();
  VRTC_RCMFCR_EN_Setable(ENABLE);
  VRTC_ADCCR_CKS_Set(VRTC_ADCCR_CKS_RCMF_2);     // ADC¹¤×÷ʱÖÓÑ¡Ôñ
  VRTC_ADCCR_CKE_Setable(ENABLE);                // ADC¹¤×÷ʱÖÓʹÄÜ
  ADC_CFGR_BUFSEL_Set(ADC_CFGR_BUFSEL_ADC_IN10); // ADCÊäÈëͨµÀÑ¡Ôñ
  ADC_CFGR_BUFEN_Setable(ENABLE);                      // ADCÊäÈëͨµÀbufferʹÄÜ/½ûÖ¹
  ADC_CR_MODE_Set(ADC_CR_MODE_EXTERNAL);               // ADC¹¤×÷ģʽѡÔñÍⲿÀÛ¼ÓÆ÷
  ADC_CR_RSTCTRL_EN_Setable(ENABLE);                   // ÔÊÐí»ý·ÖÆ÷Íⲿ¸´Î»
  ADC_CFGR_ACC_PERIOD_Set(ADC_CFGR_ACC_PERIOD_14BITS); // ÍⲿÀÛ¼ÓÆ÷ÀÛ¼ÓÖÜÆÚÅäÖÃ
  ADC_CR_HPEN_Set(ADC_CR_HPEN_1MHZ);
  ADC_TRIM_Write(0X7FF); // adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä4ms
  //  ADC_TRIM_Write(0X3FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä2ms
  //   ADC_TRIM_Write(0X1FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä1ms
  ADC_CR_ACC_IE_Setable(DISABLE); // ÍⲿÀÛ¼ÓģʽÖжϽûÖ¹
  ADC_CR_EN_Setable(DISABLE);     // ADC¹Ø±Õ
}
void ADC_IN8_Init(void)
{
  CDIF_CR_INTF_EN_Setable(ENABLE); // ¿çµçÔ´Óò½Ó¿ÚʹÄÜ
  VRTC_Init_RCMF_Trim();
  VRTC_RCMFCR_EN_Setable(ENABLE);
  VRTC_ADCCR_CKS_Set(VRTC_ADCCR_CKS_RCMF_2);    // ADC¹¤×÷ʱÖÓÑ¡Ôñ
  VRTC_ADCCR_CKE_Setable(ENABLE);               // ADC¹¤×÷ʱÖÓʹÄÜ
  ADC_CFGR_BUFSEL_Set(ADC_CFGR_BUFSEL_ADC_IN8); // ADCÊäÈëͨµÀÑ¡Ôñ
  ADC_CFGR_BUFEN_Setable(ENABLE);                      // ADCÊäÈëͨµÀbufferʹÄÜ/½ûÖ¹
  ADC_CR_MODE_Set(ADC_CR_MODE_EXTERNAL);               // ADC¹¤×÷ģʽѡÔñÍⲿÀÛ¼ÓÆ÷
  ADC_CR_RSTCTRL_EN_Setable(ENABLE);                   // ÔÊÐí»ý·ÖÆ÷Íⲿ¸´Î»
  ADC_CFGR_ACC_PERIOD_Set(ADC_CFGR_ACC_PERIOD_14BITS); // ÍⲿÀÛ¼ÓÆ÷ÀÛ¼ÓÖÜÆÚÅäÖÃ
  ADC_CR_HPEN_Set(ADC_CR_HPEN_1MHZ);
  ADC_TRIM_Write(0X7FF); // adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä4ms
  //    ADC_TRIM_Write(0X3FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä2ms
  //   ADC_TRIM_Write(0X1FF);                           //adcƵÂÊ1M Ê± ¼ÆËãʱ¼ä1ms
  ADC_CR_ACC_IE_Setable(DISABLE); // ÍⲿÀÛ¼ÓģʽÖжϽûÖ¹
  ADC_CR_EN_Setable(DISABLE);     // ADC¹Ø±Õ
}
void ADC_Temp_Init(void)
{
   CDIF_CR_INTF_EN_Setable(ENABLE);                  //¿çµçÔ´Óò½Ó¿ÚʹÄÜ
   VRTC_Init_RCMF_Trim();
   VRTC_RCMFCR_EN_Setable(ENABLE);
   VRTC_ADCCR_CKS_Set(VRTC_ADCCR_CKS_RCMF_2);            //ADC¹¤×÷ʱÖÓÑ¡Ôñ
   VRTC_ADCCR_CKE_Setable(ENABLE);                     //ADC¹¤×÷ʱÖÓʹÄÜ
   ADC_CFGR_BUFSEL_Set(ADC_CFGR_BUFSEL_TS);             //ADCÊäÈëͨµÀÑ¡Ôñ
   ADC_CFGR_BUFEN_Setable(ENABLE);                     //ADCÊäÈëͨµÀbufferʹÄÜ/½ûÖ¹
   ADC_CR_MODE_Set(ADC_CR_MODE_EXTERNAL);                          //ADC¹¤×÷ģʽѡÔñÍⲿÀÛ¼ÓÆ÷
   ADC_CR_RSTCTRL_EN_Setable(ENABLE);                  //ÔÊÐí»ý·ÖÆ÷Íⲿ¸´Î»  ÄÚ²¿Ä£Ê½disable  Íⲿģʽenable
   ADC_TRIM_Write(0x7FF);                      //ÍⲿÀۼƠ  ±ØÐëд0x7FF
  CDIF_CR_INTF_EN_Setable(ENABLE); // ¿çµçÔ´Óò½Ó¿ÚʹÄÜ
  VRTC_Init_RCMF_Trim();
  VRTC_RCMFCR_EN_Setable(ENABLE);
  VRTC_ADCCR_CKS_Set(VRTC_ADCCR_CKS_RCMF_2); // ADC¹¤×÷ʱÖÓÑ¡Ôñ
  VRTC_ADCCR_CKE_Setable(ENABLE);            // ADC¹¤×÷ʱÖÓʹÄÜ
  ADC_CFGR_BUFSEL_Set(ADC_CFGR_BUFSEL_TS);   // ADCÊäÈëͨµÀÑ¡Ôñ
   ADC_CFGR_ACC_PERIOD_Set(ADC_CFGR_ACC_PERIOD_14BITS);  //ÍⲿÀÛ¼ÓÆ÷ÀÛ¼ÓÖÜÆÚÅäÖàÄÚ²¿ÀÛ¼Ó¿É×¢ÊÍ
   ADC_CR_ACC_IE_Setable(DISABLE);                              //ÍⲿÀÛ¼ÓģʽÖжϽûÖ¹
  ADC_CFGR_BUFEN_Setable(ENABLE); // ADCÊäÈëͨµÀbufferʹÄÜ/½ûÖ¹
   ADC_CR_EN_Setable(DISABLE);                        //ADC¹Ø±Õ
  ADC_CR_MODE_Set(ADC_CR_MODE_EXTERNAL); // ADC¹¤×÷ģʽѡÔñÍⲿÀÛ¼ÓÆ÷
  ADC_CR_RSTCTRL_EN_Setable(ENABLE); // ÔÊÐí»ý·ÖÆ÷Íⲿ¸´Î»  ÄÚ²¿Ä£Ê½disable  Íⲿģʽenable
  ADC_TRIM_Write(0x7FF); // ÍⲿÀۼƠ  ±ØÐëд0x7FF
  ADC_CFGR_ACC_PERIOD_Set(ADC_CFGR_ACC_PERIOD_14BITS); // ÍⲿÀÛ¼ÓÆ÷ÀÛ¼ÓÖÜÆÚÅäÖàÄÚ²¿ÀÛ¼Ó¿É×¢ÊÍ
  ADC_CR_ACC_IE_Setable(DISABLE); // ÍⲿÀÛ¼ÓģʽÖжϽûÖ¹
  ADC_CR_EN_Setable(DISABLE); // ADC¹Ø±Õ
}
uint32_t adc_vol_cal(uint32_t adc_data)
{
   int32_t Volt = 0;
   Volt = (adc_data*const_adc_Slope/1000.0)+const_adc_Offset/100.0;
  int32_t Volt = 0;
  Volt = (adc_data * const_adc_Slope / 1000.0) + const_adc_Offset / 100.0;
   if(Volt<0) //VoltΪ¸ºÖµ
   {
         Volt=0;
   }
   return Volt;
  if (Volt < 0) // VoltΪ¸ºÖµ
  {
    Volt = 0;
  }
  return Volt;
}
float adc_tem_cal(uint32_t adc_data)
{
   float T = 0;
//ÄÚ²¿ÀÛ¼Ó¼ÆËã
//   if(adc_data >const_T_30 )
//   {
//      T=(adc_data-const_T_30)/const_TmpeK+const_30_top;
//   }
//   else
//   {
//      T=const_30_top-(const_T_30-adc_data)/const_TmpeK;
//   }
//ÍⲿÀۼƼÆËã
   if(adc_data >const_T_30_14BIT )
   {
      T=(adc_data-const_T_30_14BIT)/const_TmpeK_14BIT+const_30_top-0.5;
   }
   else
   {
      T=const_30_top-(const_T_30_14BIT-adc_data)/const_TmpeK_14BIT-0.5;
   }
  return T;
  float T = 0;
  // ÄÚ²¿ÀÛ¼Ó¼ÆËã
  //   if(adc_data >const_T_30 )
  //   {
  //      T=(adc_data-const_T_30)/const_TmpeK+const_30_top;
  //   }
  //   else
  //   {
  //      T=const_30_top-(const_T_30-adc_data)/const_TmpeK;
  //   }
  // ÍⲿÀۼƼÆËã
  if (adc_data > const_T_30_14BIT)
  {
    T = (adc_data - const_T_30_14BIT) / const_TmpeK_14BIT + const_30_top - 0.5;
  }
  else
  {
    T = const_30_top - (const_T_30_14BIT - adc_data) / const_TmpeK_14BIT - 0.5;
  }
  return T;
}
uint08 adc_wait_finish(void)
{
   uint32 timeout=0;
   do
   {
    if(SET == ADC_ISR_ACC_IF_Chk()) return 0;//ÍⲿÀÛ¼Ó
   }while(timeout++ < 0xFFFFFFFFU);
   return 1;//³¬Ê±
  uint32 timeout = 0;
  do
  {
    if (SET == ADC_ISR_ACC_IF_Chk())
      return 0; // ÍⲿÀÛ¼Ó
  } while (timeout++ < 0xFFFFFFFFU);
  return 1; // ³¬Ê±
}
uint32_t Get_AdcValue(void)
{
   volatile int32_t fVlotage = 0;
   uint32 fTempADC = 0;
   ADC_CR_EN_Setable(ENABLE);         //ADCÆô¶¯
  volatile int32_t fVlotage = 0;
  uint32 fTempADC = 0;
  ADC_CR_EN_Setable(ENABLE); // ADCÆô¶¯
   ADC_ISR_ACC_IF_Clr();             //ÍⲿÀÛ¼ÓÇå³ýÖжϱêÖ¾
   if(0 == adc_wait_finish())       //µÈ´ýת»»Íê³É
      fTempADC = ADC_DR_Read();   //¶ÁÈ¡ADÖµ
   else
      return 0;
   fVlotage = adc_vol_cal(fTempADC);//ADֵת»»Îªµçѹ,µçÔ´µçѹΪ5V
  ADC_ISR_ACC_IF_Clr();       // ÍⲿÀÛ¼ÓÇå³ýÖжϱêÖ¾
  if (0 == adc_wait_finish()) // µÈ´ýת»»Íê³É
    fTempADC = ADC_DR_Read(); // ¶ÁÈ¡ADÖµ
  else
    return 0;
  fVlotage = adc_vol_cal(fTempADC); // ADֵת»»Îªµçѹ,µçÔ´µçѹΪ5V
   return fVlotage;
  return fVlotage;
}
float Get_AdcTempValue(void)
{
   float Temperature = 0;
   uint32 fTempADC = 0;
   ADC_CR_EN_Setable(ENABLE);         //ADCÆô¶¯
  float Temperature = 0;
  uint32 fTempADC = 0;
  ADC_CR_EN_Setable(ENABLE); // ADCÆô¶¯
   ADC_ISR_ACC_IF_Clr();             //ÍⲿÀÛ¼ÓÇå³ýÖжϱêÖ¾
   if(0 == adc_wait_finish())       //µÈ´ýת»»Íê³É
      fTempADC = ADC_DR_Read();   //¶ÁÈ¡ADÖµ
   else
      return 0;
   Temperature = adc_tem_cal(fTempADC);
   return Temperature;
  ADC_ISR_ACC_IF_Clr();       // ÍⲿÀÛ¼ÓÇå³ýÖжϱêÖ¾
  if (0 == adc_wait_finish()) // µÈ´ýת»»Íê³É
    fTempADC = ADC_DR_Read(); // ¶ÁÈ¡ADÖµ
  else
    return 0;
  Temperature = adc_tem_cal(fTempADC);
  return Temperature;
}