void ADSample(void) { u8 i,tttemp; ADC1_DeInit(); ADC1_ConversionConfig(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_3, ADC1_ALIGN_RIGHT); ADC1_SchmittTriggerConfig(ADC1_SCHMITTTRIG_CHANNEL4,ENABLE); ADC1_ITConfig(ADC1_IT_EOCIE,DISABLE); ADC1_Cmd(ENABLE); ADC1->CSR &= (u8)(~0x80); ADC1_StartConversion(); while((ADC1->CSR & 0x80)!=0x80) IWDG_ReloadCounter(); // µÈ´ýת»»½áÊø Conversion_Value += ADC1_GetConversionValue(); ADC1->CSR &= (u8)(~0x80); u8ADChannelCnt++; if(u8ADChannelCnt>=SAMPLE_TIMES) { u8ADChannelCnt = 0; tttemp = (u8)((Conversion_Value>>2)/SAMPLE_TIMES); if((tttemp<20) || (tttemp>200) ) u8Temp = OFF_TMP_SET; else { for(i=0;T3580Tab[i]<tttemp;i++); u8Temp = (u8)(i+(40*2)); } Conversion_Value = 0; }
/** * ADC HW init * * @return void */ static void adc_hw_init(void) { ADC1_DeInit(); ADC1_Init(ADC_CHANNEL, ADC_PRESCALER); ADC1_Cmd(ENABLE); }
/** * @brief Deinitializes the ADC. * @retval : None */ void pot_DeInit(void){ /* De-Init ADC peripheral*/ ADC1_DeInit(); /* Enable EOC interrupt */ ADC1_ITConfig(ADC1_IT_EOCIE,DISABLE); }
void ADC1_Config() { ADC1_DeInit(); #ifdef EN_SENSOR_MIC ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_1, ADC1_PRESSEL_FCPU_D4, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL1, DISABLE); ADC1_ScanModeCmd(ENABLE); #else ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_0, ADC1_PRESSEL_FCPU_D4, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL0, DISABLE); ADC1_Cmd(ENABLE); #endif //ADC1_ITConfig(ADC1_IT_AWS0, ENABLE); ADC1_StartConversion(); }
/** * @brief Initializes the ADC. * ADC conversion mode: continious, EOC interrupt enabled * @retval : None */ void pot_init(void){ /* Init GPIO for ADC7 */ GPIO_Init(GPIOB, GPIO_PIN_7, GPIO_MODE_IN_FL_NO_IT); /* De-Init ADC peripheral*/ ADC1_DeInit(); /* Init ADC1 peripheral */ ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_7, ADC1_PRESSEL_FCPU_D18, \ ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL7,\ DISABLE); /* Enable EOC interrupt */ ADC1_ITConfig(ADC1_IT_EOCIE,ENABLE); /* Enable general interrupts */ enableInterrupts(); /*Start Conversion */ ADC1_StartConversion(); }
/* Configure ADC1 Continuous Conversion with End Of Conversion interrupt enabled . */ void InitADC() { /* De-Init ADC1 peripheral */ ADC1_DeInit(); /* Enable EOC interrupt */ ADC1_ITConfig(ADC1_IT_EOCIE, ENABLE); /* Enable conversion data buffering */ ADC1_DataBufferCmd(ENABLE); /* Enable scan mode conversion */ ADC1_ScanModeCmd(ENABLE); /* Init ADC1 peripheral */ /* ADC1 Channel 3 */ ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, REF_2V5_ANALOG, ADC1_PRESSEL_FCPU_D4, \ ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL3,\ DISABLE); /* ADC1 Channel 4 */ ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, L9110_U3_DRAW, ADC1_PRESSEL_FCPU_D4, \ ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL4,\ DISABLE); /* ADC1 Channel 5 */ ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, L9110_U4_DRAW, ADC1_PRESSEL_FCPU_D4, \ ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL5,\ DISABLE); /* ADC1 Channel 6 */ ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, L9110_U5_DRAW, ADC1_PRESSEL_FCPU_D4, \ ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL6,\ DISABLE); ADC1_Cmd(ENABLE); }