S5PV210 ADC转换
第一节 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转换的更多相关文章
- s5pv210 AD转换
1:ADC:Analog-to-Digital Converter,模拟信号转数字信号,自然界一般为模拟信号,而SoC需要数字信号,所以之间通信需要ADC. 2:转换原理: 以逐次逼近式AD转换为例: ...
- adc转换原理
模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件.通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号.由于数字信号本身不具有实际意义,仅仅表示一个相对大 ...
- stm32片上ADC转换实验
原理图所示: BAT_DET 接到PB0 引脚,VSYS 是直流3.7V的电压.再来看下103的adc转换和引脚GPIO的关系 我们直接选用ADC1 根据上表格只能使用通道8 下面给我常用的ADC1寄 ...
- 007_STM32程序移植之_多通道ADC转换
1. 测试环境:STM32C8T6 2. 测试:使用DMA进行多通道ADC转换 3. 描述:用 ADC 连续采集 12 路模拟信号,并由 DMA 传输到内存.ADC 配置为扫描 并且连续转换模式,AD ...
- 电赛菜鸟营培训(四)——STM32F103CB之ADC转换
一.ADC概念 实现模拟信号转换成数字信号就是这样子= = 二.代码框架 #include "stm32f10x.h" void delay(u32 kk) { while(kk- ...
- ADC转换的分辨率
分辨率是指ADC能够分辨量化的最小信号的能力.分辨率用二进制位数表示.例如对一个10位的ADC,其所能分辨的最小量化电平为参考电平(满量程)的2的10次方分之一.也就是说分辨率越高,就能把满量程里的电 ...
- ADC 转换序列暂时难理解
通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工作当前状态存储生成第一个文件,程序出错的时候理论上都会产生一个co ...
- iio adc转换应用编写
#include <stdio.h> #include <stdlib.h> #include <fcntl.h> # ...
- STM32F207 两路ADC连续转换及GPIO模拟I2C给MT9V024初始化参数
1.为了更好的方便调试,串口必须要有的,主要打印一些信息,当前时钟.转换后的电压值和I2C读出的数据. 2.通过GPIO 模拟I2C对镁光的MT9V024进行参数初始化.之前用我以前公司SP0A19芯 ...
随机推荐
- 【洛谷P1073】最优贸易
题目大意:给定一个 N 个点,M 条边(存在反向边)的有向图,点有点权,求一条从 1 到 N 的路径上,任意选出两个点 p,q (p 在前,q在后),两点点权的差值最大. 根据最短路的 dp 思想,可 ...
- 提高磁盘访问性能 - NtfsDisableLastAccessUpdate
这个技巧可以提高磁盘访问性能,不过仅适用于NTFS文件系统. 我们知道,当在磁盘管理应用程序中列出目录结构时──效果类似“资源管理器”.“文件管理 器”(Windows NT 3.xx/4.0下的称 ...
- Markdown语法整理
标题 语法格式:'#'+'空格'+'文本',一共6级 # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 斜体 语法格式:1个星号包裹,我 ...
- maven install deploy tell us heap is full
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compi ...
- redis实现队列
转:https://www.cnblogs.com/nullcc/p/5924244.html 问题:如果一个并发很大的消息应用,想要根据请求的优先级来处理? 答案:用Redis 详解: 一是并发量大 ...
- 启动eclipse弹出提示Version 1.7.0_79 of the JVM is not suitable for this product. Version: 1.8 or greater is required怎样解决
启动eclipse时弹出如下弹出框: 解决办法: 在eclipse安装目录下找到eclipse.ini文件,并在 -vmargs-Dosgi.requiredJavaVersion=1.8 前面加上 ...
- 什么是cap
cap理论是分布式系统中非常重要的一个理念 什么是cap理论: Consistency一致性 Availability可用性 Partition-tolerance分区容忍性 CP: 高一致性C和分区 ...
- JVM调优命令-jinfo
jinfo JVM Configuration info这个命令作用是实时查看和调整虚拟机运行参数. 之前的jps -v口令只能查看到显示指定的参数,如果想要查看未被显示指定的参数的值就要使用jinf ...
- filebeat多个key
filebeat.prospectors:- type: log paths: - D:\logs\iis\W3SVC2\*.log exclude_lines: ['^#'] multiline: ...
- kruskal算法:POJ No.3723 Conscription_最小生成树应用_最大权森林
#define _CRT_SECURE_NO_WARNINGS /* 5 5 8 4 3 6831 1 3 4583 0 0 6592 0 1 3063 3 3 4975 1 3 2049 4 2 2 ...