在ADC_init()AD初始化函数中打开了ADC12IE中断,在ADC12ISR中断函数中需不需要将ADC12IE关掉?
我的程序出现两个问题:
问题1:如果在#pragma vector=ADC_VECTOR __interrupt void ADC12ISR (void) 中断函数中不把ADC12IE关掉的话,程序不会跳出ADC12ISR中断函数?
问题2:如果在中断函数中把ADC12IE关掉的话,程序跑了一段时间(这个时间不固定)AD就不再采集,LCD也不再刷新?
请大侠们看看是什么原因,谢谢!
此帖出自
小平头技术问答
你只开了ADC的中断,那么就是ADC中断,在然后会关闭全局中断使能,也就是说在处理一个中断的时候,不再会相应任何可屏蔽中断。
所以你的代码如果从中断服务函数中出不来,可能是出现了死循环或者系统复位的情况。
中断中关掉ADC12IE是可以的,但是在处理结束的时候需要打开才能相应下一次的中断。
你可以到我的空间中看下中断的响应过程,可能对你有帮助。
http://home.eeworld.com.cn/my/sp ... o=blog&id=42042
一周热门 更多>