FL2440无操作系统应用程序编写测试006——ADC

Subject:FL2440无操作系统应用程序编写测试006——ADC

Date:   9-Nov-2011

By:        Calvinlee1984@163.com

 

1.S3c2440A提供了8通道10位模数转换接口(其中有四个通道用于触摸屏),ADC最大转换频率为2.5MHZ,其最大转换速率可达500KSPS。ADC内含采样并保持功能而且支持掉电模式,其微分线性误差(Differential Linearity Error)为±1.0LSB,积分线性误差(Intergal Linearity Error)为±2.0LSB。FL2440开发板利用其中的1通道接1个可调电阻,可做AD模数测试,其硬件原理图如下:

FL2440无操作系统应用程序编写测试006——ADC_第1张图片 

 

2.ADC控制框图

FL2440无操作系统应用程序编写测试006——ADC_第2张图片

 

3.寄存器设置

static void ADC_Port_Init(void){

       //ADC工作方式设置:预分频使能、模拟通道1、标准转换模式、读时启动转换

       //ADC转换频率计算(必须<PCLK/5)

     FL2440无操作系统应用程序编写测试006——ADC_第3张图片

       rADCCON &= ~(0xff);

       rADCCON |= (1<<14|0x31<<6|0<<3|0<<2|1<<1);       //Prescaler Enable,Prescaler=49,Analog Input 0,Enable start by read operation

      FL2440无操作系统应用程序编写测试006——ADC_第4张图片

}

 

4.代码分析 ADC.c

#include "2440addr.h"

#include "2440lib.h"

#include "UART.h"

#include "def.h"

 

//寄存器设置

static void ADC_Port_Init(void){

       rADCCON &= ~(0xff);

       rADCCON |= (1<<14|0x31<<6|0<<3|0<<2|1<<1);      //Prescaler Enable,Prescaler=49,Analog Input 0,Enable start by read operation

}

 

void ADC_Display(void){

       WORD TmpAdcData;

       ADC_Port_Init();   //ADC端口初始化

       rADCCON |= (1<<1);    //ADC转换开始,启动后处理器会自动清除此位

       FL2440无操作系统应用程序编写测试006——ADC_第5张图片

 

       while(UART0_GetKey()!=ESC_KEY){       

               TmpAdcData = (rADCDAT0 & (0x3FF));              //读操作

               FL2440无操作系统应用程序编写测试006——ADC_第6张图片

 

               while(!(rADCCON & (0x1<<15)));                         //等待读取完成

             

              

               UART0_Printf("AIN0:%04d\n",TmpAdcData);     //输出数据至终端

               Delay(1000);                                                             //延时1000ms   

       }

}

 

5.测试程序及结果

#include "UART.h"

#include "ADC.h"

 

int Main(void)

{

       UART0_Port_Init(115200);    //UART0端口初始化

       ADC_Display();                   //显示ADC转换数据

       while(1){

        ;                   

       }

       return 0;

}

 

FL2440无操作系统应用程序编写测试006——ADC_第7张图片 

 

 

你可能感兴趣的:(FL2440无操作系统应用程序编写测试006——ADC)