当前位置:首页 > 单片机 > 单片机
[导读]使用ADC只需要对相应的寄存器进行配置,然后启动ADC即可,启动ADC有两种方法:1. 手动完成启动。2.读取上一次转换结果后自动启动下一次ADC转换。得到ADC是否转换完成的信息的方法有两种方法:1. 查询法:查询寄存器A

使用ADC只需要对相应的寄存器进行配置,然后启动ADC即可,启动ADC有两种方法:

1. 手动完成启动。

2.读取上一次转换结果后自动启动下一次ADC转换。

得到ADC是否转换完成的信息的方法有两种方法:

1. 查询法:查询寄存器ADCCON的第15位(ADC的转换完成位)。

2. 中断法:转换完成后,产生ADC中断信号。

当不使用触摸屏时,与ADC相关的寄存器主要有据寄存器ADCCON和寄存器ADCDAT0。寄存器ADCCON主要用于选择ADC的启动方式、设置ADC转换时钟以及ADC转换结束标志位等。寄存器ADCDAT0中存放了ADC抓换所得的结果,ADC转换结束后,可以直接读改寄存器的值来得到转换结果。

注意:普通ADC转换数据值存储在ADCDAT0的低10位,数据范围0~0x3ff。ADC的时钟来自PCLK时钟的分频,并且时钟必须小于PCLK/5。


//****************ADC 中断*****************

void ADC_start();

extern int ADC_dat;


void __irq ADC_isr()

{

unsigned long irqOffSet;

send_dat(ADC_dat);

send_str((unsigned char *)"ADC is started!rn");

ADC_dat = 1010;//((int)rADCDAT0&0x3ff);//读取ADC的转换值

//dely(100);

send_dat(ADC_dat);

//ADC_start();//启动AD

send_dat(ADC_dat);

irqOffSet = rINTOFFSET;// 取得中断号

rSUBSRCPND |= (1<<10)|(1<<9);

rSRCPND |= 1<

rINTPND= rINTPND;//中断标志清零

dely(550);

send_str((unsigned char *)"ADC is end!rn");

}

void Init_ADC()

{

//寄存器进行清零

rADCCON &= ~((1<<14)|(0xff<<6)|(0x07<<3)|(1<<2)|(1<<1)|(1<<0));

//允许分频,预分频值为49,通道0,正常工作模式,读数时不启动转换

rADCCON |= (1<<14)|(49<<6)|(0<<3)|(0<<2)|(0<<1);

rINTSUBMSK &= ~((1<<10)|(1<<9));

rINTMSK &= ~(1<<31);//使能ADC中断

pISR_ADC = (unsigned int)ADC_isr;

send_str((unsigned char *)"ADC initial is OK!rn");

}

void ADC_start()

{

rADCCON |= 0x01;//启动AD转换

while(!(rADCCON&0x01));//ADC 开始后,bit0会自动清零

}

int get_ADC_data(void)

{

//send_dat(ADC_dat);

send_str((unsigned char *)"test is started!rn");

ADC_dat = 1010;//((int)rADCDAT0&0x3ff);//读取ADC的转换值

//dely(100);

send_dat(ADC_dat);

//ADC_start();//启动AD

send_dat(ADC_dat);

send_str((unsigned char *)"test is end!rn");

return 0;

}


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

  本文根据网络视频采集的需要,将网络传输与视频采集相结合,设计了以S3C2440为核心的USB摄像头视频采集和嵌入式Linux系统下的视频服务器,从而实现了远程网络视频信息采集。   

关键字: s3c2440 视频采集 usb摄像头

         之前在提起自动化或是智能化时,人们会不自觉的想到工业生产,这是因为自动化这个字眼进入中国,确实是以工业

关键字: 嵌入式 Linux s3c2440 视频采集

  引言   随着科技的不断发展,以数据业务为主的固定宽带无线接入技术发展已经很成熟,而移动宽带无线通信技术还并没有得到广泛的应用。由于移动宽带无线接入系统需要解决带宽、移动性和覆盖范围

关键字: IPv6 s3c2440 x86 架构

  1 引言   人们生活水平的提高以及科技的进步,特别是计算机技术、网络技术和通信技术的发展,智能家居将慢慢成为未来家居生活的发展方向。1984年在美国诞生了世界上第一座智能家居建筑,

关键字: boa nrf24l01 s3c2440 智能家居

我们知道2440开发流程为:移植uboot--》移植内核---》挂接根文件系统。我们移植完内核需要挂接根文件系统,那么首先我们必须拥有根文件系统。如何来制作我们的根文件系统呢?第一步:在linux下建

关键字: s3c2440 根文件系统

1.TQ2440u-boot-1.1.6修改文件所在的路径是u-boot-1.1.6includeconfigsEmbedSky.h将#defineLCD_TFTxxx(LCD类型)W353.5寸TFT4802724.3...

关键字: s3c2440 lcd参数

2440的晶振频率为12MHZ,有两个PLL:MPLL和UPLL,其中MPLL产生FCLK、HCLK、PCLK;UPLL产生UCLK。FCLK为ARM核提供时钟,HCLK为AHB总线时钟,PCLK为APB总线时钟,UCL...

关键字: s3c2440 时钟初始化

开发板:TQ2440内核:Linux 2.6.32PC OS:Ubuntu 11.041.配置内核打开I2C功能:打开杂项设备,该选项打开后,EEPROM也就打开了。2. 修改代码修改文件: linux/arch/arm...

关键字: at24c02 eeprom s3c2440 移植 linux驱动

在分析ARM-Linux s3c2440中UART的时有必要先了解 s3c2440A中串口的硬件知识。硬件篇:S3c2440A串口提供三个独立的异步串行通信I/O端口(asynchronousserial I/O por...

关键字: ARM Linux s3c2440 uart

s3c2440 cpu的默认工作主频有两种12MHz和16.9344MHz,也就是我们的晶振的频率,但一般12MHz的晶振用的比较多,Fin就是指我们接的晶振频率。大家都知道s3c2440上电正常工作后频率是远远大于12...

关键字: s3c2440 时钟
关闭