- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于S3C2410的硬件结构与接口编程
基于S3C2410的硬件结构与接口编程
ARM自带的10位A/D转换器
基于S3C2410的硬件结构与接口编程
编程注意事项如下。
(1)A/D转换的数据可以通过中断或查询的方式来访问,如果是用中断方式,全部的转换时间(从A/D转换的开始到数据读出)要更长,因为中断服务程序返回和数据访问的原因。如果是查询方式则要检测ADCCON[15](转换结束标志位)来确定从ADCDAT寄存器读取的数据是否是最新的转换数据。
(2)A/D转换开始的另一种方式是将ADCCON[1]置为1,这时只要有读转换数据的信号A/D转换就会同步开始。
(3)与AD相关的寄存器
① A/D采样控制寄存器ADCCON及其位描述(参见表4-77、表4-78)
ARM自带的10位A/D转换器
基于S3C2410的硬件结构与接口编程
ARM自带的10位A/D转换器
基于S3C2410的硬件结构与接口编程
ARM自带的10位A/D转换器
基于S3C2410的硬件结构与接口编程
A/D转换器在扩展版的接法
基于S3C2410的硬件结构与接口编程
【例4-5】 调节A/D转换测试程序。
功能:调节A/D转换时的输入电位器,从串行口0输出A/D转换结果数值。
主参考代码如下:
?
int main(void)
{
int i,j;
float d;
ARMTargetInit(); //开发版初始化
init_ADdevice(); //A/D初始化
Uart_Printf(0,\n);
While?(1)
A/D编程实例
基于S3C2410的硬件结构与接口编程
{
for(i=0; i=2; i++) //采样0~3路A/D值
{
for(j=0;j=1;j++)
{d=GetADresult(i)*3.3/1023; //数据采集,处理
}
Uart_Printf(0, a%d=%f\t,i,d);
hudelay(1000); //延时
}
Uart_Printf(0, \r);
}
return 0;
}
A/D编程实例
主要的定义和函数参考代码如下:
?
#define ADCCON_FLAG (0x115)
#define ADCCON_ENABLE_START_BYREAD (0x11)
#define rADCCON (*(volatile unsigned *)0
#define rADCDAT0 (*(volatile unsigned *)0x5800000C)
#define PRSCVL (496)
#define ADCCON_ENABLE_START (0x1)
#define STDBM (0x02)
#define PRSCEN (0x114)
void ARMTargetInit(void);
void init_ADdevice() //初始化AD
{ rADCCON=(PRSCVL|ADCCON_ENABLE_START|STDBM|PRSCEN);
}
int GetADresult(int channel) //取采样值
{ rADCCON=ADCCON_ENABLE_START_BYREAD|(channel3)|PRSCEN|PRSCVL;
hudelay(10);
while(!(rADCCONADCCON_FLAG)); //转换结束
return (0x3ffrADCDAT0); //返回采样值
}
A/D编程实例
基于S3C2410的硬件结构与接口编程
S3C2410X中断控制器可以接收来自56个中断源的中断请求。这些中断源来自DMA、UART、I2C等这样的片内外围或片外外部引脚。其中24路为外部中断EINTn,外部中断中EINT4~EINT7、EINT8~EINT23是逻辑或的关系,它们共享一条中断请求线。
当从内部外设和外部中断请求引脚接收到多个中断请求时,经过中断仲裁后,中断控制器向ARM920T请求FIQ或者IRQ中断。
仲裁过程与硬件优先级有关,仲裁结果写入中断请求寄存器。中断请求寄存器帮助用户确定哪个中断产生。
AR
文档评论(0)