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

📄 adc.c

📁 基于RAM的外设数据控制器pdc.rar
💻 C
字号:
#include "AT91SAM7S64.H"



 /**********************************************
				 ADC初始化
 **********************************************/
 void ADC_Init(void)
 {
   *AT91C_ADC_CR|=(1<<0);//软件复位ADC
   //*AT91C_PMC_SCER=(1<<0);//使能处理器时钟
   //*AT91C_PMC_PCER=(1<<4);
   //*AT91C_PIOA_PDR=(1<<20);
   *AT91C_ADC_MR= (0<<0)//硬件触发禁用
                 |(1<<4)//8位分辨率
				 |(0<<5)//休眠模式
				 |(127<<8)//MSK/256
				 |(0X1F<<16)
				 |(0X0F<<24);
   *AT91C_ADC_CHER=(1<<3);//使能通道3
   *AT91C_ADC_IDR=0x000fffff;//禁用所有的中断
 }

/***********************************************
函数功能:读取通道n的转换结果(8位分辨率)
输入参数:n——通道数
返回值  :转换结果
备注    :返回值必须为int		  
***********************************************/
unsigned int Read_Channel(unsigned char n)
 {
  while(1)
  {
   if(((*AT91C_ADC_SR)&(1<<n)))	//如果转换完成
   {
	 switch(n)
	 {
	 case 0:
   	        return((*(AT91C_ADC_CDR0))&0x000000ff);	//返回转换结果
	 case 1:
	        return((*(AT91C_ADC_CDR1))&0x000000ff);	//返回转换结果
	 case 2:
			return((*(AT91C_ADC_CDR2))&0x000000ff);	//返回转换结果
	 case 3:
			return((*(AT91C_ADC_CDR3))&0x000000ff);	//返回转换结果
	 case 4:
			return((*(AT91C_ADC_CDR4))&0x000000ff);	//返回转换结果
	 case 5:
			return((*(AT91C_ADC_CDR5))&0x000000ff);	//返回转换结果
	 case 6:
			return((*(AT91C_ADC_CDR6))&0x000000ff);	//返回转换结果
	 case 7:
			return((*(AT91C_ADC_CDR7))&0x000000ff);	//返回转换结果
	 }
   }
  }
 }
/***********************************************************************
函数功能:设置并启动DMA。
入口参数:Addr: 接收数据的缓冲区地址;Count:要接收的数量。
返    回:无。
备    注:无。
***********************************************************************/
void SET_ADC_DMA(unsigned int *Addr, int Count)
{
 *AT91C_ADC_RPR=(unsigned int)Addr;   //设置地址
 *AT91C_ADC_RCR=Count;  //设置数量
 *AT91C_ADC_PTCR=(1<<0);  //启动接收
}
/********************************************************************
函数功能:等待ADC的DMA传输完成。
入口参数:无。
返    回:无。
备    注:无。
********************************************************************/
void WAIT_ADC_DMA_FINISH(void)
{
 while((*AT91C_ADC_RCR)!=0); //当未接收完时,等待
}









⌨️ 快捷键说明

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