[AVR单片机] mega8的ADC一次转换模式怎么启动呢?

[复制链接]
5696|13
 楼主| ershisi 发表于 2010-6-19 22:45 | 显示全部楼层 |阅读模式
mega8的ADC一次转换模式怎么启动呢?
laslison 发表于 2010-6-21 12:39 | 显示全部楼层
先进行初始化,然后设置寄存器ADCSRA
qfengbj 发表于 2010-6-21 13:30 | 显示全部楼层
同问!学习一下
 楼主| ershisi 发表于 2010-6-21 13:34 | 显示全部楼层
看到这么一语句
ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADPS2)|(1<<ADPS1);//启动ADC单次转化模式,64分频
可是不明白,谁给解释下
928315 发表于 2010-6-21 22:19 | 显示全部楼层
这样的。
ADCSRA 这个寄存器,一共是8位。
ADEN,ADSC,,ADPS2,ADPS1,这几个是宏定义,
比如  #DEFINE  ADEN       5
表示将ASCSRA这个寄存的的第多少位置1。。。。
这个是ADC初始化配置。
大碗拉面 发表于 2010-6-22 10:44 | 显示全部楼层
ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADPS2)|(1<<ADPS1);

这一句的意思是将寄存器ADCSRA中的ADEN位、ADSC位、ADPS2位、ADPS1位都置1。
而没有提到的的,则保持为寄存器ADCSRA原先的值。
如果这句赋值语句出现在初始化的环境中,那么寄存器ADCSRA的值应为0b11000111
注意第ADSC在转换过程中为1,完成后会清0。

其实楼主还是楼主看下DATASHEET,上面讲解的很清楚。
大碗拉面 发表于 2010-6-22 10:45 | 显示全部楼层
晕,错了
ADCSRA的值应为0b11000110
928315 发表于 2010-6-22 21:39 | 显示全部楼层
看来楼上AVR玩得很熟练哈。。我 好久没有写程序了。。。
 楼主| ershisi 发表于 2010-6-22 22:23 | 显示全部楼层
ADEN,ADSC,,ADPS2,ADPS1,这几个是宏定义?
下面又有人说是ADEN位、ADSC位、ADPS2位、ADPS1位
不明白了
 楼主| ershisi 发表于 2010-6-22 22:24 | 显示全部楼层
如果是数位的话,那怎么能  #DEFINE  ADEN       5
不是只能是0或者1吗
wuzhaolie 发表于 2010-6-22 22:47 | 显示全部楼层
菜鸟进来学习
qfengbj 发表于 2010-6-22 23:19 | 显示全部楼层
我也没看明白啦
大碗拉面 发表于 2010-6-24 09:32 | 显示全部楼层
我与5楼朋友说的不冲突
他说的宏定义概念是在AVR中的头文件(比如“mega8.h”,根据编译不同文件名有出入)中
有如下定义
ADEN 这个代号对应为 7
ADSC 这个代号对应为 6
ADPS2 这个代号对应为 2
ADPS1 这个代号对应为 1

ADCSRA寄存器是一个字节长,一共有8位
语句“ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADPS2)|(1<<ADPS1);”
就是将ADCSRA寄存器中相应位置1;
而所谓的相应位就是ADEN位、ADSC位、ADPS2位、ADPS1位
也就是ADCSRA寄存器中7位、    6位、      2位、     1位。

这回解释的怎样?
yidou 发表于 2010-6-24 22:31 | 显示全部楼层
这个解释够详细:handshake
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

413

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部