原创 ARM9裸机开发系列(9):ADC模数转换【ARM9+ADS1.2入门】

2009-12-7 09:33 4040 6 6 分类: MCU/ 嵌入式


开发板micro2440 开发环境ADS1.2.


 


/****************************************Copyright (c)**************************************************
**                              
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名:
**创   建   人: sanniu
** 创 建 日 期: 2009年05月23日
**描        述:
**接口定义,参看原理图micro2440
   
********************************************************************************************************/


#include "def.h"
#include "2440addr.h"
#include "ADC.H"
#include "POLUART.H"


volatile uint32 preScaler;


void ADCInit(uint32 freq)
{
 if(freq>2500000)
  freq = 2500000;
 if(freq==0)
  freq = 1250000;
 preScaler = 50000000/freq - 1;
}
uint16 ADCRead(uint8 ch)
{
    uint32 ret;
   
 rADCCON = (1<<14)|(preScaler<<6)|(ch<<3);//设置转换速度和通道


    rADCCON |= 0x1;   //开始转换 ADC 
 
 for(ret=0;ret<2000;ret++)
  if(!(rADCCON & 0x1)) break;
 for(ret=0;ret<200000;ret++)
  if((rADCCON & (1<<15))) break;
 
 ret = ((uint16)rADCDAT0 & 0x3ff);//读取转换完成的数据
 
 return ret; 
}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条