wchp314 发表于 2008-8-1 18:01:49

废了,Tiny13 连续转换模式下ADC自动触发老是进不了中断;

废了,Tiny13 连续转换模式下ADC自动触发老是进不了中断;
我代码是这样的:
/***********************ADC_Init***********************/
ACSR   = 0x80;//关闭模拟比较器
ADMUX= 0x01;
//启动自动触发,连续转换模式,128分频
ADCSRA = (1<<ADEN)|(1<<ADATE)|(1<<ADIE)|0x06;
ADCSRB = 0x00;
 //启动ADC
ADCSRA|= (1 << ADSC );
_SEI();
/***********************ADC_ISR***********************/
#pragma vector=ADC_vect
__interrupt void
ADC_vect_isr( void )
{
tmp = ADC;
}

如果用单次转换模式是一点问题也没有,但为了提高采样速度,想采用自动触发模式,
但只能初始化的时候进入一次中断程序,以后就不进入了;

这么简单的东西调了一下午,废了;请高手出手了;

wchp314 发表于 2008-8-1 18:06:02

datasheet说得很清楚,自动触发模式,连续模式,我启动一次ADC以后我就不要管它了,
每转换完以后进入中断,自动硬件清标志位,然后时间到了自动又进行转换;

我只要到中断里取值,滤波就可以了;可怎么它以后就不进入中断了呢,
我又没仿真器,不知道AD是不是在跑,只是没进入中断而已?

wchp314 发表于 2008-8-1 18:10:34

既然我AD中断使能了,应该每ADC一次,就会进入中断一次吧?

zhaomq 发表于 2013-7-4 22:13:58

ADC中断里,必须将 ADTS2:0: ADC 自动触发源 的中断旗号清零,可能来自模拟比较器,外部中断请求,T0 或者 T1 的等,我举出的是Mega48的情况。
页: [1]
查看完整版本: 废了,Tiny13 连续转换模式下ADC自动触发老是进不了中断;