AVR 关于AD转换的问题
在avr的用户手册中 有这样一句话“在ADC 转换结束,且数据寄存器被更新后, ADIF 置位。如果ADIE 及SREG 中的全局中断使能位I 也置位,ADC 转换结束中断服务程序即得以执行,同时ADIF 硬件清零。此
外,还可以通过向此标志写1 来清ADIF” 中的“通过向此标志写1 来清ADIF”是什么意思,如果不清零会发生什么情况?
恳请各位高手指点指点。。。。。 ADIF表示当前一次ADC转换完成了,不关你是否需要这个ADC的值,一般总要把它清掉,为下一次做准备。
如果你不清零,而且ADC是单次转换的。那么当你启动ADC后,ADIF仍然为1,你如果认为是转换完成,读ADC值的话,可能就是错误的了。 谢谢马老师 辛苦了 machao 发表于 2009-7-19 13:20 static/image/common/back.gif
ADIF表示当前一次ADC转换完成了,不关你是否需要这个ADC的值,一般总要把它清掉,为下一次做准备。
如果你 ...
如果是连续转换模式的话,即:ADCSRA|=(1<<ADFR);还需要考虑ADIF位吗?连续转换模式下,怎么才能判断转换结束呢?
我的程序是这样写的:
ADCSRA=0x00;
ADMUX=0x40;///ADC0,
ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADFR)|0x07;
delay_nms(10); //给出转换的时间,1ms足够
adc_l0=ADCL;//先读取低八位
adc_h0=ADCH;//再读取高八位
红色注释行是否可以换成判断ADIF位是否置位?
谢谢!!!! machao 发表于 2009-7-19 13:20 static/image/common/back.gif
ADIF表示当前一次ADC转换完成了,不关你是否需要这个ADC的值,一般总要把它清掉,为下一次做准备。
如果你 ...
是否只有在用中断服务程序处理准换结果的时候才需要判断ADIF是否置位?
页:
[1]