嵌入式s3c2240: ADC

ADC :模数转换

10 CMOS ADC (模 / 数转换器)是一个 8 通道模拟输入的再循环类型设备。其转换模拟输入信号为 10 位二进制数字编码,最大转换率为 2.5MHz A/D 转换器时钟下的 500 KSPS
模拟:连续信号
数字:离散信号

原理 

当采样到信号后, 与各个比较器相比较

假设采样到2.5

2.5>0 比较器1输出0

2.5>1 比较器2输出0

2.5>2 比较器3输出0

2.5<3 比较器4输出1

四位数字可以用2位二进制代码存储

比3小自然比后面4,5...都小

所以置位第四个比较器为11

而开发板共10位二进制数编码,精度为0~3.3V(开发板最高供电3.3V),量程为1024(0~1023)

最高频率为2.5MHz

PCLK为50M,设置预分频值为49(49+1=50)分频后转换器频率50/50=1MHz

ADC控制寄存器(ADCCON)

ADC控制器初始化 

void adc_init(void)
{
	ADCCON = (1<<14) |(49<<6)|(1<<1);//因为是直接赋值,所以为0的地方直接就是0
}

设置预分频值49

通道选择0

正常工作模式

使能读启动操作

这里设置为使能读启动(要先读一次启动读操作) ,读取一次后自动读取下一次

若是手动启动A/D转换

 

ADC转换数据寄存器(ADCDAT0)

 

读取adc信号 

unsigned short adc_read(void)
{
	unsigned short data = ADCDAT0;//读取一次ADCDAT数据才能启动转换
	while(!(ADCCON & (1<<15)));	//正在转换时(ADCCON第15位为0)等候
	data = ADCDAT0 & 0x3ff;		//转换完读取数据
	return data;
}

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值