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

📄 adc.c

📁 at91sam7s64温度控制程序
💻 C
字号:
/*============================文件信息===========================*/
/*文   件   名:adc.c                                            */
/*创   建   人:葛康                                             */
/*最后修改日期:2006年2月24日                                    */
/*文 件 描  述: 无                                              */
/*===============================================================*/

#include "AT91SAM7S64.h"
#include "lib_AT91SAM7S64.h"

extern void led_on(char led, char index);
extern void led_delay(void); 

/*****************************************************************/
/*函数名称:adc_init                                             */
/*功能描述:初始化ADC的相关积存器                                */
/*输入参数:无                                                   */
/*输出参数:无                                                   */
/*****************************************************************/
void adc_init(void)
{ 

  //AT91F_ADC_SoftReset(AT91C_BASE_ADC);
  AT91F_ADC_CfgPMC ();                             //使能ADC时钟
  AT91F_ADC_CfgModeReg(AT91C_BASE_ADC,0x0f1f3f00); //软件启动,10位分辨率,128分频
  AT91F_ADC_EnableChannel(AT91C_BASE_ADC,0xD0);//使能通道4\6\7
  AT91F_ADC_DisableIt(AT91C_BASE_ADC,0xfffff);     //禁止所有的ADC中断	  
}


/*****************************************************************/
/*函数名称:ad4_read                                             */
/*功能描述:读取ADC的转换结果                                    */
/*输入参数:无                                                   */
/*输出参数:ad_val                                               */
/*****************************************************************/
unsigned short ad4_read(void)
{
	unsigned short ad_val;
	volatile unsigned int status;
	//adc_init();                                   //初始化ADC
	AT91F_ADC_StartConversion(AT91C_BASE_ADC);    //启动AD转换
	status =AT91F_ADC_GetStatus(AT91C_BASE_ADC);
	if(status&AT91C_ADC_EOC4)
	{
	ad_val=AT91F_ADC_GetConvertedDataCH4(AT91C_BASE_ADC)&0x3ff;//读取转换结果	
	}
	return ad_val;
}


/*****************************************************************/
/*函数名称:ad6_read                                             */
/*功能描述:读取ADC的转换结果                                    */
/*输入参数:无                                                   */
/*输出参数:ad_val                                               */
/*****************************************************************/
unsigned short ad6_read(void)
{
	unsigned short ad_val;
	volatile unsigned int status;
	//adc_init();                                   //初始化ADC
	AT91F_ADC_StartConversion(AT91C_BASE_ADC);    //启动AD转换
	status =AT91F_ADC_GetStatus(AT91C_BASE_ADC);
	if(status&AT91C_ADC_EOC6)
	{
	ad_val=AT91F_ADC_GetConvertedDataCH6(AT91C_BASE_ADC)&0x3ff;//读取转换结果	
	}
	return ad_val;
}


/*****************************************************************/
/*函数名称:ad7_read                                             */
/*功能描述:读取ADC的转换结果                                    */
/*输入参数:无                                                   */
/*输出参数:ad_val                                               */
/*****************************************************************/
unsigned short ad7_read(void)
{
	unsigned short ad_val;
	volatile unsigned int status;
	//adc_init();                                 //初始化ADC
	AT91F_ADC_StartConversion(AT91C_BASE_ADC);    //启动AD转换
	status =AT91F_ADC_GetStatus(AT91C_BASE_ADC);
	if(status&AT91C_ADC_EOC7)
	{
	ad_val=AT91F_ADC_GetConvertedDataCH7(AT91C_BASE_ADC)&0x3ff;//读取转换结果	
	}
	return ad_val;
}

⌨️ 快捷键说明

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