当前位置:首页 > 单片机 > 单片机
[导读]使用的是RVDS4.0编译的大家主要是看看如何配置模式的我之前一直使用自动X,Y采样,但是读取的都不准,最后采样分离的,才可以,需要注意的是使能ADC读开始后需要先读转换结果寄存器,但是此时读取的是上一次的转换结果,

使用的是RVDS4.0编译的

大家主要是看看如何配置模式的

我之前一直使用自动X,Y采样,但是读取的都不准,最后采样分离的,才可以,需要注意的是使能ADC读开始后需要先读转换结果寄存器,但是此时读取的是上一次的转换结果,如果是连续读取需要等待转换完成,否则转换结果不准.

adc.c


/*************************************************************************************************************

*文件名:ADC.c

*功能:S3C6410ADC底层驱动函数

*作者:cp1300@139.com

*创建时间:2012年3月12日21:05

*最后修改时间:2012年3月12日

*详细:触摸屏驱动以及相关ADC驱动

*问题:一直以来存在一个误区,一直以为使用了启动开始读操作,每次读DAT寄存器后就可以读取到转换后的数据,最终发现使用这个后读到的是上一次的数据,

*还是需要等到转换完成,否则连续转换的时候数据会非常乱.

*现在使用的是手动控制转换开始

*************************************************************************************************************/

#include"system.h"

#include"ADC.h"

//ADC的控制寄存器ADCCON

#defineADCCON_RESSEL_12BIT(1<<16)//12bit模式

#defineADCCON_ECFLG(0<<15)//A/D转换结束标志只读;

#defineADCCON_PRSCEN(1<<14)//A/D转换器预分频器使能

#defineADCCON_PRSCVL(32<<6)//预分频值,1-255,分频值+1,至少为PCLK的1/5,此时PCLK=66MHZ,在2.5MHZ时钟下转换最快

#defineADCCON_SEL_MUX(0<<3)//默认选择通道0

#defineADCCON_STDBM(0<<2)//正常模式

#defineADCCON_READ_START(0<<1)//关闭启动开始读操作

#defineADCCON_ENABLE_START(0<<0)//如果READ_START启用,这个值是无效的。

//ADCDLY

#defineADCDLY_DELAY500//自动采样延时时间,

/*************************************************************************************************************************

*函数:voidSetADC_Channel(u8ch)

*功能:设置ADC输入通道

*参数:ch:通道号,0-7

*返回:无

*依赖:底层宏定义

*作者:cp1300@139.com

*时间:20120513

*最后修改时间:20120513

*说明:ADC输入通道选择

*************************************************************************************************************************/

voidSetADC_Channel(u8ch)

{

ADC->CON&=~(7<<3);//清除通道

ADC->CON|=ch&(0x07);//设置通道号

}

/*************************************************************************************************************************

*函数:voidADC_Init(void)

*功能:ADC初始始化

*参数:无

*返回:无

*依赖:底层宏定义

*作者:cp1300@139.com

*时间:20120312

*最后修改时间:20120313

*说明:ADC初始始化

*************************************************************************************************************************/

voidADC_Init(void)

{

//ADC的控制寄存器配置;12BIT模式

ADC->CON=ADCCON_RESSEL_12BIT+ADCCON_ECFLG+ADCCON_PRSCEN+ADCCON_PRSCVL+ADCCON_SEL_MUX+ADCCON_STDBM+ADCCON_READ_START+ADCCON_ENABLE_START;

ADC->DLY=ADCDLY_DELAY;//设置自动间隔采样时间

}

/*************************************************************************************************************************

*函数:voidADC_SetMode(u8Mode)

*功能:设置ADC模式

*参数:无

*返回:无

*依赖:底层宏定义

*作者:cp1300@139.com

*时间:20120313

*最后修改时间:20120313

*说明:设置ADC模式

*************************************************************************************************************************/

voidADC_SetMode(u8Mode)

{

ADC->TSC&=(1<<8);//清除原先设置

ADC->CON&=~BIT2;//退出待机模式

XP_UP_DISABLE();//XP上拉禁止

Normal_ADC_Mode();//普通ADC模式

switch(Mode)

{

caseCOMMON_AD_MODER://普通ADC模式

Normal_ADC_Mode();break;

caseASUNDER_X_MODER://分离的X扫描模式

{

ADCTSC_XP_VDD();

ADCTSC_XM_GND();

ADCTSC_YP_HZ();

ADCTSC_YM_HZ();

X_PosMode();

}break;//XP=外部电源,XM=GND,YP=AIN5,YM=高阻

caseASUNDER_Y_MODER://分离的Y扫描模式

{

ADCTSC_X

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

May 7, 2024 ---- 据TrendForce集邦咨询最新预估,第二季DRAM合约价季涨幅将上修至13~18%;NAND Flash合约价季涨幅同步上修至约15~20%,全线产品仅eMMC/UFS价格涨幅较小,...

关键字: NAND Flash DRAM

为增进大家对激光雷达的认识,本文将对激光雷达的应用场景、激光雷达的发展现状予以介绍。

关键字: 雷达 指数 激光雷达

为增进大家对激光雷达的认识,本文将对激光雷达的分类以及激光雷达测距的方法予以介绍。

关键字: 雷达 指数 激光雷达

为增进大家对激光雷达的认识,本文将对激光雷达、单线激光雷达和多线激光雷达的区别予以介绍。

关键字: 雷达 指数 激光雷达

May 6, 2024 ---- 根据TrendForce集邦咨询资深研究副总吴雅婷表示,受惠于HBM销售单价较传统型DRAM(Conventional DRAM)高出数倍,相较DDR5价差大约五倍,加上AI芯片相关产品...

关键字: DRAM HBM AI

为增进大家对工业以太网的认识,本文将对工业以太网的原理、工业以太网的关键技术以及工业以太网要解决的问题予以介绍。

关键字: 以太网 工业以太网 指数

为增进大家对工业以太网的认识,本文将对工业以太网网络优势、工业以太网和IOLINK的区别予以介绍。

关键字: 以太网 工业以太网 指数

为增进大家对工业以太网的认识,本文将对工业以太网的优势、工业以太网缺点、工业以太网的维护予以介绍。

关键字:

Apr. 23, 2024 ---- 随着节能成为AI推理服务器(AI Inference Server)优先考量,北美客户扩大存储产品订单,带动QLC Enterprise SSD需求开始攀升。然而,目前仅Solidi...

关键字: SSD AI 服务器

为增进大家对二极管的认识,本文将对续流二极管、续流二极管的工作原理以及二极管在工业产品中的应用予以介绍。

关键字: 二极管 指数 续流二极管
关闭
关闭