韦东山嵌入式第一期学习笔记DAY_21——18_2_S3C2440_ADC初始化编程

作者:GWD 时间:2019.7.26

一、课程内容
概述:写了ADC通道0的初始化函数,并在串口打印电压值
第一步、根据手册写初始化函数(ADCCON第1位开始位,没说需要手动清0,就是会由硬件自动清0)

#include "../s3c2440_soc.h"

void adc_init(void)
{
	/* [15] : ECFLG,  1 = End of A/D conversion
	 * [14] : PRSCEN, 1 = A/D converter prescaler enable
	 * [13:6]: PRSCVL, adc clk = PCLK / (PRSCVL + 1)
	 * [5:3] : SEL_MUX, 000 = AIN 0
	 * [2]   : STDBM
	 * [0]   : 1 = A/D conversion starts and this bit is cleared after the startup.
	 */
	ADCCON = (1<<14)|(49<<6)|(0<<3);

	ADCDLY = 0XFF;
}

int adc_read_ain0(void)
{
	ADCCON |= (1<<0);
	while(!( ADCCON & (1<<15) ));
	return  ADCDAT0 & 0X3FF;
}


第二步、写测试函数
注:%03d,三位显示不足3位的数组由0补齐

#include "adc.h"

void adc_test(void)
{
	int val;
	int m,n;
	double vol;

	adc_init( );

	while(1)
	{
		val = adc_read_ain0( );
		vol = (double)val/1023*3.3;
		m = (int)vol;
		vol = vol - m;
		n = vol * 1000;
		printf("vol: %d.%03dv\r", m, n);  /* 3.010v */
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值