您的位置 首页 IC

ARM入门笔记(5)

模拟量输入——AD转换实验一.目的通过AD转换,能够正确读取外部模拟输入通道的电压值。二.实验程序和参数设置1>连接器选项设置和启动代

模仿量输入

——A/D转化试验

一.意图

经过A/D转化,可以正确读取外部模仿输入通道的电压值。

二.试验程序和参数设置

1>连接器选项设置和发动代码都与上个试验相同
2>C言语的代码

#i nclude “AT91SAM7S64.h”
#i nclude “Board.h”
volatile unsigned int EXT_AD_Val[4]; //界说A/D转化成果值
int main(void)
{unsigned char i;
*AT91C_ADC_CR = AT91C_CKGR_MOSCEN; //ADC的软件复位,即铲除ADC的一切寄存器
*AT91C_PMC_SCER = AT91C_CKGR_MOSCEN;//使能体系时钟寄存器的处理器时钟
*AT91C_PMC_PCER = 1 91C_ID_ADC; //使能ADC时钟
*AT91C_PIOA_PDR = EXT_AD0 | EXT_AD1; //制止管脚的I/O口功用,使作为模仿输入功用
*AT91C_ADC_MR= 0x0f1f3f00; //软件起动,10位分辨率,128分频
*AT91C_ADC_CHER = 0x33; //使能通道0,1,4,5
*AT91C_ADC_CHDR = 0xcc; //禁能通道2,3,6,7
*AT91C_ADC_IDR= 0xfffff; //制止一切ADC中止
while (1)
{ *AT91C_ADC_CR = 0x2; //起动转化
while(1)
{ if ((*AT91C_ADC_SR) & 0x33)//等候转化完毕
{ EXT_AD_Val[0] = (*AT91C_ADC_CDR0) & 0x3ff;//读取10Bit的成果值
EXT_AD_Val[1] = (*AT91C_ADC_CDR1) & 0x3ff;
EXT_AD_Val[2] = (*AT91C_ADC_CDR4) & 0x3ff;
EXT_AD_Val[3] = (*AT91C_ADC_CDR5) & 0x3ff;
for (i = 0; i
break;
}
}
}
}

三.总结

履行ADC的软件复位,将铲除ADC的一切相关寄存器,因而必须在设置ADC相关寄存器之前履行。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/254315.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部