ATmega16 A/D的相关寄存器
位 7:6——REFS[1:0]:参考电压选择
通过这2位可以选择参考电压。如果在转换过程中改变了它们的设置,只有等到当前转换结束(ADCSRA寄存器的ADIF置位)之后改变才会起作用。如果在AREF引脚上施加了外部参考电压,内部参考电压就不能被选用了。
REFS1
位 5——ADLAR:ADC转换结果左对齐
ADLAR影响ADC转换结果在ADC数据寄存器中的存放形式。ADLAR置位时转换结果为左对齐,否则为右对齐。ADLAR的改变将立即影响ADC数据寄存器的内容,不论是否有转换正在进行。
位4:0–MUX[4:0]:模拟通道与增益选择位
通过这几位的设置,可以对连接到ADC的模拟输入进行选择。也可对差分通道增益进行选择。如果在转换过程中改变这几位的值,那么只有到转换结束(ADCSRA寄存器的ADIF置位)后新的设置才有效。
MUX[4..0]
2.ADCSRA——ADC控制和状态寄存器A
位7——ADEN:ADC使能
ADEN置位即启动ADC,否则ADC功能关闭。在转换过程中关闭ADC将立即中止正在进行的转换。
位 6——ADSC:ADC开始转换
在单次转换模式下,ADSC置位将启动一次ADC转换。在连续转换模式下,ADSC置位将启动首次转换。第一次转换(在ADC启动之后置位ADSC,或者在使能ADC的同时置位ADSC)需要25个ADC时钟周期,而不是正常情况下的13个。第一次转换执行ADC初始化的工作。在转换进行过程中读取ADSC的返回值为"1”,直到转换结束。ADSC清零不产生任何动作。
位5——ADATE:ADC自动触发使能
ADATE置位将启动ADC自动触发功能。触发信号的上跳沿启动ADC转换。触发信号源通过SFIOR寄存器的ADC触发信号源选择位ADTS设置。
位4——ADIF:ADC中断标志
在ADC转换结束,且数据寄存器被更新后,ADIF置位。如果ADIE及SREG中的全局中断使能位I也置位,ADC转换结束中断服务程序即得以执行,同时ADIF硬件清零。此外,还可以通过向此标志写1来清ADIF。要注意的是,如果对ADCSRA进行读-修改-写操作,那么待处理的中断会被禁止。这也适用于SBI及CBI指令。
位 3——ADIE:ADC中断使能
若ADIE及SREG的位I置位,ADC转换结束中断即被使能。
位 2:0——ADPS[2:0]:ADC预分频器选择位
由这3位来确定XTAL与ADC输入时钟与CPU时钟之间的分频因子。
ADPS2
3.ADCL、ADCH——ADC数据寄存器
4.SFIOR——特殊功能IO寄存器
位 7:5–ADTS[2:0]:ADC自动触发源
若ADCSRA寄存器的ADATE置位,ADTS的值将确定触发ADC转换的触发源;否则,ADTS的设置没有意义。被选中的中断标志在其上升沿触发ADC转换。从一个中断标志清零的触发源切换到中断标志置位的触发源会使触发信号产生一个上升沿。如果此时ADCSRA寄存器的ADEN为1,ADC转换即被启动。切换到连续运行模式(ADTS[2:0]=0)
时,即使ADC中断标志已经置位也不会产生触发事件。
ADTS2
评论