⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc.c

📁 通讯电缆智能防盗报警器--通讯电缆智能防盗报警器安装在各局的机房内
💻 C
字号:

#define  ADC_GLOBALS
#include <includes.h>


/*****************************************************************************
函数名称: ADC_Init
函数功能: ADC初始化
输入参数: ADC通道号
输出参数: 无
****************************************************************************/
void ADC_Init()
{ 
  INT8U i;
	P1M0 = 0x01;                //P1.0为开漏,其余I/O为传统口
  P1M1 = 0x01;
  ADC_CONTR =CN_INIT_ADC;     //0x80,选第一路ADC P1.0,并开启ADC电源,速率为840个时钟周期
  
  Delay_Set(CN_1ms);          //开A/D转换电源后要加延时,1ms以内就足够了
  AUXR=CN_INIT_AUXR;          //0x10,t0,t1为传统定时器,UART为传统速率,EADCI=1,ESPI=0,ELVDI=0
  EADC_SPI=1;
  ADC_DATA = 0;
	ADC_LOW2 = 0;
  
  for(i=0;i<ADC_BUF_SIZE;i++)              //清空AD转换数据缓存
   {
   	 FanADBuf[i]=0;          //防止计算后出来负值
   }
   PointFADC=0;
   
   ADC_ArrIbub(FanADBuf,ADC_BUF_SIZE);
  
}


/*****************************************************************************
函数名称: ArrIbub
函数功能: 数组排序函数
输入参数: 数组指针,排序数量
输出参数: 无
****************************************************************************/
void ADC_ArrIbub(INT16U p[],INT8U n)                         //数组排序函数
{
	INT8U m,k,j,i;
	INT16U d;
	k=0;
	m=n-1;
	while(k<m)
	{
		j=m-1;
		m=0;
		for(i=k;i<=j;i++)
		{
			if(p[i]>p[i+1])
			{
				d=p[i];
				p[i]=p[i+1];
				p[i+1]=d;
				m=i;
			}
		}
		j=k+1;
		k=0;
		for(i=m;i>=j;i--)
		{
			if(p[i-1]>p[i])
			{
				d=p[i];
				p[i]=p[i-1];
				p[i-1]=d;
				k=i;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -