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. Loadrunner之文件的上传(八)

    老猪提供: https://mp.weixin.qq.com/s?__biz=MzIwOTMzNDEwNw==&mid=100000013&idx=1&sn=624f5bc74 ...

  2. JavaScript(2)——对象属性、原型与原型链

    对象属性.原型与原型链 哈哈哈,我的第二篇博客哟,说的是对象属性.原型与原型链.可能这些只是某些小点串联起来的,逻辑性没有很强.所以会对文章的可读性和理解性带来一些困扰.不过,今天我又前进了那么一小步 ...

  3. python 基本的序列和映射规则

    >>> def checkIndex(key):...     if not isinstance(key,(int,long)):raise TypeError...     if ...

  4. cocos2d-x-2.2.6创建工程

    1.下载并安装Python,我的版本是2.7.3,不要太高,据说不能用.2.配置环境变量,将Python的安装的根目录加入系统环境变量的Path路径中(不赘述,自行配置)3.配置好之后打开cmd命令行 ...

  5. CodeForces 500 A. New Year Transportation

    Description New Year is coming in Line World! In this world, there are n cells numbered by integers ...

  6. android代码实现免提功能

    初始化AudioManager: private static AudioManager audioManager; 实现免提功能方法 protected void setSpeekModle() { ...

  7. maven学习笔记 1

    1    概述 1.1 Maven是什么 1.2 为什么要用Maven 2    怎么用Maven 2.1 Maven仓库 2.2 Maven安装 2.3 Eclipse插件 2.4 Maven常用命 ...

  8. Ubuntu下使用rpm 软件包

    Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb. sudo apt-get install alien sudo alien xxxx.rpm #将rp ...

  9. Chrome 43+浏览器 Cookies encrypted_value解密脚本

    python 3.3.5 # -*- coding: utf-8 -*- # Used information from: # http://stackoverflow.com/questions/4 ...

  10. Struts2语法--Ognl

    OGNL: Object Graph Navigation Language index.jsp: <body> 访问属性 <a href="<%=contextPa ...