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

📄 adc.c

📁 C语言源代码及相关资料
💻 C
字号:

#include	"config.h"


uint8	ADC_Init(void)	
{
	
	
	PCONP |=1 <<12;								// 必须打开ADC的功率控制位ADC才可以正常工作
	
	//进行ADC模块设置
	PINSEL1	|=	(0x01 << 14);		// 设置P0.23为AIN0功能
	//PINSEL1	|=	(0x01 << 14)|		// 设置P0.23为AIN0功能
	//			(0x01 << 16);		// 设置P0.24为AIN0功能
	//PINSEL3|=(((unsigned)0x03)<< 30);		// 设置P1.31为AIN5功能
	
	 return	1;    
	 
}



uint8	ADC_Data_read(uint8	channelNum,uint32	* data)		
{
	uint32 i;
	
	static uint32 AdcData;                      // 用静态局部变量保存消息
   
   
   AD0CR = (1 << channelNum)|                    // 选择通道
			((Fpclk / 1000000 - 1) << 8)|	 // CLKDIV=Fpclk/1000000-1,转换时钟为1MHz
			(0 << 16)|	                     // BURST=0,软件控制转换操作
			(0 << 17)|	                     // CLKS=0, 使用11clock转换
			(1 << 21)|                       // PDN=1,正常工作模式
			(1 << 24);		                 // 先不启动ADC
			
    for(i=0; i < 30; i++)
    {
    	  
	    switch(channelNum)
	    {
	    	case	0:
	    	AdcData = ADDR0;						    // 读取AD通道0结果,清除中断标志位
	    	break;
	    	case	1:
	    	AdcData = ADDR1;						    // 读取AD通道1结果,清除中断标志位
	    	break;
	    	case	5:
	    	AdcData = ADDR5;						    // 读取AD通道5结果,清除中断标志位
	    	break;
	    }
		AdcData = (AdcData >> 6) & 0x3ff;
		AdcData = AdcData * 3300;				    // 参考电压由精密恒压源提供的3.3V
		AdcData = AdcData / 1024;
	    	
	    *data+=AdcData;
	   
      
	}
    
    *data=*data/30;
	
    return	1;    
   
}

⌨️ 快捷键说明

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