废了,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;
}
如果用单次转换模式是一点问题也没有,但为了提高采样速度,想采用自动触发模式,
但只能初始化的时候进入一次中断程序,以后就不进入了;
这么简单的东西调了一下午,废了;请高手出手了; datasheet说得很清楚,自动触发模式,连续模式,我启动一次ADC以后我就不要管它了,
每转换完以后进入中断,自动硬件清标志位,然后时间到了自动又进行转换;
我只要到中断里取值,滤波就可以了;可怎么它以后就不进入中断了呢,
我又没仿真器,不知道AD是不是在跑,只是没进入中断而已? 既然我AD中断使能了,应该每ADC一次,就会进入中断一次吧? ADC中断里,必须将 ADTS2:0: ADC 自动触发源 的中断旗号清零,可能来自模拟比较器,外部中断请求,T0 或者 T1 的等,我举出的是Mega48的情况。
页:
[1]