ARM9(S3C2440) ADC

  模拟信号/数字信号

   (1)、模拟信号是一种在时间上连续,数值上也连续的物理量,具有无穷多的数值,从自然界感知的大部分物理量都是模拟性质的,如速度,压力,温度,声音等。

   (2)、数字信号在时间上和数值上均是离散的,而离散信号的值只有真与假,是或不是,因此可以使用二进制中的0与1来表示 。

 

 

 

 

ADC驱动流程

 

 

 

 

 

ADC主要驱动程序

main.c

#define ADC_FREQ 2500000

void Main(void)
{
    /*时钟初始化*/
    Set_Clk();
   
    /*adc初始化*/
    adc_init();
   
    while(1)
    {
     /*读取转换值*/
        adc_value=ReadAdc(0);

 delay(1000) ;
    }
}

 

void adc_init(void)
{
 
 //选择输入通道,AIN0,对应开发板上W1可调电阻
 int channel=0;
 
 /*设置分频时钟*/
 preScaler = ADC_FREQ;
 preScaler = 50000000/ADC_FREQ - 1; //PCLK=50M
 
 /*AD转换频率设置,最大频率为2.5MHz*/
 rADCCON = (1<<14)|(preScaler<<6)|(channel<<3); //setup channel
 delay(1000);  

}

 

**************************************************/   
int ReadAdc(int channel)
{
   /*开始AD转换*/
   rADCCON |= 0x01; //start ADC
 
   while(rADCCON & 0x1); //check if Enable_start is low
 
   /*检查转换是否结束*/
   while(!(rADCCON & 0x8000)); //check if EC(End of Conversion) flag is high
   
   return ( (int)rADCDAT0 & 0x3ff );
}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值