第一节 S5PV210的ADC
S5PV210的ADC可支持10bit和12bit,它支持10路输入,然后将输入的模拟的信号转换为10bit或者12bit的二进制数字信号。
在5MHz的时钟下,最大转换速率是1MSPS。本章只是涉及到初步的ADC转换,并不会讲解触摸屏相关知识,其结构图如下:


在Mini210S中,adc相关的原理图如下:


通道0的输入被接到可调电阻上,通过调节可调电阻,adc能转换出不同的值。
第二节 程序相关讲解
完整代码见详细代码下载链接。
1. main.c
main()函数很简单,主要是调用了adc_test()函数来测试adc,adc_test()的定义位于文件adc.c中。
2. adc.c
函数adc_test()的代码如下:
void adc_test(void)
{
    printf("\r\n##################adc test################\r\n");
    while(1)
    {
        printf("adc = %d\r\n",read_adc(0));
        delay(0x100000);
    }
}
通过一个while循环不断的读取通道0经过adc转换的值,核心函数是read_adc(),它主要包括5个步骤:
第一步 设置时钟。
相关代码如下:
TSADCCON0 = (1<<16)|(1 << 14) | (65 << 6);
首先使用12bit adc,然后使能分频,最后设置分频系数为66。


第二步 选择通道。
代码如下:
ADCMUX = 0; //设置寄存器ADCMUX,选择通道0。
第三步 启动转换。
代码如下:
TSADCCON0 |= (1 << 0);
while (TSADCCON0 & (1 << 0));
首先设置寄存器TSADCCON0的bit[0],启动A/D转换,然后读bit[0]以确定转换已经启动。
第四步 检查转换是否完成。
代码如下:
while (!(TSADCCON0 & (1 << 15)) );
读寄存器TsdACCON0的bit[15],当它为1时表示转换结束。
第五步 读数据。
代码如下:
return (TsdATX0 & 0xfff);
由于我们使用的12bit的模式,所以只读寄存器TsdATX0的前12bit。
第三节 实验现象
串口终端上会不断的打印出数字,数字的范围是0~4095,这是因为我们使用的是12bit的ADC。
我们通过调节可变电阻可以改变ACD转换值。效果如下:

详细代码下载链接:http://download.csdn.net/detail/klcf0220/6045033

S5PV210 ADC转换的更多相关文章

  1. s5pv210 AD转换

    1:ADC:Analog-to-Digital Converter,模拟信号转数字信号,自然界一般为模拟信号,而SoC需要数字信号,所以之间通信需要ADC. 2:转换原理: 以逐次逼近式AD转换为例: ...

  2. adc转换原理

    模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件.通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号.由于数字信号本身不具有实际意义,仅仅表示一个相对大 ...

  3. stm32片上ADC转换实验

    原理图所示: BAT_DET 接到PB0 引脚,VSYS 是直流3.7V的电压.再来看下103的adc转换和引脚GPIO的关系 我们直接选用ADC1 根据上表格只能使用通道8 下面给我常用的ADC1寄 ...

  4. 007_STM32程序移植之_多通道ADC转换

    1. 测试环境:STM32C8T6 2. 测试:使用DMA进行多通道ADC转换 3. 描述:用 ADC 连续采集 12 路模拟信号,并由 DMA 传输到内存.ADC 配置为扫描 并且连续转换模式,AD ...

  5. 电赛菜鸟营培训(四)——STM32F103CB之ADC转换

    一.ADC概念 实现模拟信号转换成数字信号就是这样子= = 二.代码框架 #include "stm32f10x.h" void delay(u32 kk) { while(kk- ...

  6. ADC转换的分辨率

    分辨率是指ADC能够分辨量化的最小信号的能力.分辨率用二进制位数表示.例如对一个10位的ADC,其所能分辨的最小量化电平为参考电平(满量程)的2的10次方分之一.也就是说分辨率越高,就能把满量程里的电 ...

  7. ADC 转换序列暂时难理解

    通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态存储生成第一个文件,程序出错的时候理论上都会产生一个co ...

  8. iio adc转换应用编写

    #include <stdio.h>        #include <stdlib.h>         #include <fcntl.h>         # ...

  9. STM32F207 两路ADC连续转换及GPIO模拟I2C给MT9V024初始化参数

    1.为了更好的方便调试,串口必须要有的,主要打印一些信息,当前时钟.转换后的电压值和I2C读出的数据. 2.通过GPIO 模拟I2C对镁光的MT9V024进行参数初始化.之前用我以前公司SP0A19芯 ...

随机推荐

  1. A1025. PAT Ranking

    Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhe ...

  2. [luogu2822][组合数问题]

    题目链接 题解: 对于上面和下面的式子进行分解质因数,然后看看上面的质因数个数减去下面的质因数个数能不能达到k的质因数的要求即可. 分解质因数的时候用对于阶乘分解质因数的常用方法:比如要求1999!中 ...

  3. 收藏:解决其它程序与IIS共享80端口的四个方法

    今天写的程序也占用80端口,而 IIS也占用 80端口,我在我的一张网卡上分配了两个IP地址,但是测试发现:只要IIS启动后,我写的程序就无法使用80端口,到网上搜索了一下,终于找到了解决办法: 使用 ...

  4. c输出格式

    #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { //取整 printf( ...

  5. Linux command ------ vi / vim

    EDIT mode to GENERAL mode: press ESC General mode: operate file :q!    :force to close the file but ...

  6. 记录一次nginx的upstream的配置信息

    nginx的upstream的配置信息 upstream qq.xiaoyu.cn { server 192.168.1.139:80 max_fails=3 fail_timeout=30s; se ...

  7. 多目标遗传算法 ------ NSGA-II (部分源码解析) 实数、二进制编码的变异操作 mutation.c

    遗传算法的变异操作 /* Mutation routines */ # include <stdio.h> # include <stdlib.h> # include < ...

  8. redis的入门篇---五种数据类型及基本操作

    查看所有的key keys * 清空所有的key flushall 检查key是否存在 exists key 设置已存在的key的时长 expire key //设置key为10s 查看key还剩多少 ...

  9. nginx的负载均衡配置,常用策略

    场景:nginx是一款非常优秀的负载均衡服务器,小巧而且性能强悍,中小型企业的首选. 下面介绍nginx的负载均衡的几种常见的配置以及优缺点 第一种:轮询(默认) 优点:实现简单 缺点:不考虑每台服务 ...

  10. python学习笔记9--日志模块logging

    我们在写程序的时候经常会打一些日志来帮助我们查找问题,这次学习一下logging模块,在python里面如何操作日志.介绍一下logging模块,logging模块就是python里面用来操作日志的模 ...