S3C2440拥有八通道的十位ADC, 最大转换率为2.5MHz A/D转换器时钟下的500KSPS。A/D转换器支持片上采样-保持功能和掉电模式的操作。

八个通道中有四个通道适用于电阻屏的触摸屏触摸检测,另外四个是模拟输入,分别是A[0:3],

ADC的使用极其简单,选择时钟à选择通道à启动转换à转换完成

主要用到如下几个寄存器

负责选择时钟通道以及启动ADC

这里读取ADC的值

注意这一位,这说明转换完成读取的时候还可以触发转换,也就是相当于连续转换

Adc.c

#include "adc.h"

//=====================================================================
//名称:ADCSelect(int ch, U32 preScaler)
//功能:选择转换通道,转换器预分频值设置
//参数: ch :转换通道 preScaler:预分频值
//返回值:无
//======================================================================= void ADCSelect(int ch, u8 preScaler)
{
rADCCON=(1<<14)|(preScaler<<6)|(ch<<3); //选择通道,选择分频数 启动转换
} //=======================================================================
//名称:ADEnable()
//功能:采用置位使能方式启动AD转换,16次采样取平均值
//参数: 无
//返回值: 转换后的值
//=======================================================================
u16 ADEnable(void)
{
int i;
int val=0; for(i=0;i<16;i++)
{
rADCCON |=0x1; //使能ADC转换 while(rADCCON & 0x1); //判断使能ADC转换后被清零 while(!(rADCCON &0x8000)); //等待转换结束 val +=(rADCDAT0 & 0x3ff); //读取ADC转换的值 }
val = val>>4; //计算ADC转换值 return val;
} //=======================================================================
//名称:ADRead()
//功能:采用读控制器的方式启动AD转换
//参数: 无
//返回值:转换后的值
//=======================================================================
u16 ADRead(void)
{
int i;
int val=0; rADCCON |=0x2; //ADC转换通过读操作来启动 for(i=0;i<16;i++)
{
rADCCON |=0x1; //使能ADC转换 while(rADCCON & 0x1); //判断使能ADC转换后被清零 while(!(rADCCON &0x8000)); //等待转换结束 val +=(rADCDAT0 & 0x3ff); //读取ADC转换的值 }
val = val>>4; //计算ADC转换值 return val;
}

Adc.h

#ifndef __ADC_H
#define __ADC_H
#include "2440addr.h"
#include "def.h" void ADCSelect(int ch, u8 preScaler); u16 ADEnable(void); u16 ADRead(void); #endif

S3C2440 ADC详解的更多相关文章

  1. s3c2440串口详解

    一.UART原理说明 通用异步收发器简称UART(Universal Asynchronous Receiver/Transmitter),它用来传输串行数据:发送数据时,CPU将并行数据写入UART ...

  2. STM32—ADC详解

    文章目录 一.ADC简介 二.ADC功能框图讲解 1.电压输入范围 2.输入通道 3.转换顺序 4.触发源 5.转换时间 6.数据寄存器 7.中断 8.电压转换 三.初始化结构体 四.单通道电压采集 ...

  3. 18.Llinux-触摸屏驱动(详解)

    本节的触摸屏驱动也是使用之前的输入子系统 1.先来回忆之前第12节分析的输入子系统 其中输入子系统层次如下图所示, 其中事件处理层的函数都是通过input_register_handler()函数注册 ...

  4. 18.Llinux-触摸屏驱动(详解)【转】

    转自:https://www.cnblogs.com/lifexy/p/7628889.html 本节的触摸屏驱动也是使用之前的输入子系统 1.先来回忆之前第12节分析的输入子系统 其中输入子系统层次 ...

  5. SPI详解2

    串行外设接口 (SPI) 总线是一种运行于全双工模式下的同步串行数据链路.用于在单个主节点和一个或多个从节点之间交换数据. SPI 总线实施简单,仅使用四条数据信号线和控制信号线(请参见图 1). 图 ...

  6. oracle正则表达式regexp_like的用法详解

    oracle正则表达式regexp_like的用法详解 /*ORACLE中的支持正则表达式的函数主要有下面四个:1,REGEXP_LIKE :与LIKE的功能相似2,REGEXP_INSTR :与IN ...

  7. 【嵌入式开发】 Bootloader 详解 ( 代码环境 | ARM 启动流程 | uboot 工作流程 | 架构设计)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42462795 转载请著名出处 相关资源下载 :  -- u-boo ...

  8. STM32固件库详解

    STM32固件库详解   emouse原创文章,转载请注明出处http://www.cnblogs.com/emouse/ 应部分网友要求,最新加入固件库以及开发环境使用入门视频教程,同时提供例程模板 ...

  9. ALSA声卡驱动中的DAPM详解之七:dapm事件机制(dapm event)

    前面的六篇文章,我们已经讨论了dapm关于动态电源管理的有关知识,包括widget的创建和初始化,widget之间的连接以及widget的上下电顺序等等.本章我们准备讨论dapm框架中的另一个机制:事 ...

随机推荐

  1. 判断Android应用是否安装、运行

    本文介绍3个方法,判断手机上是否安装了某应用.该应用是否正在运行.获取手机某个APK文件的安装Intent.启动该Intent就可以直接安装该APK. /** * 判断应用是否已安装 * * @par ...

  2. Loadrunner脚本录制注意事项(七)

    1.手动走一遍被测业务,达到熟悉理解业务,注意是否和服务器有数据交互,为脚本是否需要关联做准备: 2.浏览器选择IE8/9较好,选择其他浏览器可能会有各种问题.(a.IE设置:内容-设置-去掉所有选项 ...

  3. C#中:函数访问级别对函数形参访问级别的约束

    Inconsistent accessibility: parameter type 'Program.CommandLineInfo' is less accessible than method ...

  4. The Importance of Money in Life

    What were you taught about money as you were growing up?something like "Money doesn't grow on t ...

  5. xdebug 安装

    如果是这样的话,请参考 http://www.mengyunzhi.com/share/php/107-xdebug.html 进行xdebug的安装.

  6. SGU_390_Tickets(另类数位DP)

    Tickets Time Limit : 1000/500ms (Java/Other)   Memory Limit : 524288/262144K (Java/Other) Total Subm ...

  7. 怎样让外界无法改变自定义view的尺寸大小

    重写setFrame和setBounds方法即可. + (instancetype)testView { return [[self alloc] init]; } - (void)setFrame: ...

  8. 直接拿来用!最火的iOS开源项目(一)

    直接拿来用!最火的iOS开源项目(一) 发表于2013-06-05 10:17| 39373次阅读| 来源CSDN| 100 条评论| 作者唐小引 iOS开源项目GitHub移动开发最受欢迎的开源项目 ...

  9. 项目整体说明及WBS练习

    乐谱识别研究的意义 纸质乐谱向数字化乐谱的转换,是人类音乐活动与计算机音乐处理之间进行信息交流的必经之路.光学乐谱识别是将纸质乐谱扫描输入计算机后,对乐谱图像加以处理.识别.分析,最终获得乐谱的计算机 ...

  10. mysql的一些特殊命令

    mysql命令行工具的编辑技巧 从mysql performace blog 中学到的: 1. pager 例子 mysql> pager more PAGER set to 'more' my ...