资讯详情

ADC采集数据求平均

利用可快速采集

例:

/*********************************************************************** * 函数名称:void ADC_VDD_Sampling(void) * 功能描述:读取内部电压 ADC=1/4VCC * 输入参数:无 * 输出参数:ADC_12bit_VDD_Data:1/4VCC以12位数据存储电压,3v基准 * 返回值  :无 * 用法示例:无 * 注意事项:ADC读取时间44us **********************************************************************/ void ADC_VDD_Sampling(void) {  ADMD = 0x90 | C_Quarter_VDD;   // ADC=1/4VDD 配置内部通道  ADMDbits.START = 1;      // ADC开始检测   while(ADMDbits.EOC == 0);     // 延迟程序等待转换结束  R_ADC_VDD_DATA_HB = ADD;    // 寄存器“R_ADC_VDD_DATA_HB”存储VDD的ADC数据位11~4  R_ADC_VDD_DATA_LB = 0x0F & ADR;   // 寄存器“R_ADC_VDD_DATA_LB”bit3~0存储VDD的ADC数据位3~0  ADC_12bit_VDD_Data = (R_ADC_VDD_DATA_HB<<4) R_ADC_VDD_DATA_LB; } /*********************************************************************** * 函数名称:void ADC_VDD_Average(void) * 功能描述:多次阅读ADC,求平均 * 输入参数:ADC_12bit_VDD_Data:ADC采集数据 * 输出参数:ADC_VDD_Abergar:16次ADC收集数据平均值 * 返回值  :无 * 用法示例:无 * 注意事项:时间800us左右 44*16=704us **********************************************************************/ void ADC_VDD_Average(void) {  ADC_VDD_Abergar=0;  for(j=0;j<16;j  )  {   ADC_VDD_Sampling();   ADC_VDD_Abergar  = ADC_12bit_VDD_Data;  }  ADC_VDD_Abergar = ADC_VDD_Abergar >> 4;  ADC_12bit_VDD_Data = 0XFFFF & ADC_VDD_Abergar; }

标签: adr03arz集成电路ic

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台