430 的ADC12IE问题

2019-03-24 13:24发布

在ADC_init()AD初始化函数中打开了ADC12IE中断,在ADC12ISR中断函数中需不需要将ADC12IE关掉?   我的程序出现两个问题: 问题1:如果在#pragma vector=ADC_VECTOR __interrupt void ADC12ISR (void) 中断函数中不把ADC12IE关掉的话,程序不会跳出ADC12ISR中断函数? 问题2:如果在中断函数中把ADC12IE关掉的话,程序跑了一段时间(这个时间不固定)AD就不再采集,LCD也不再刷新?   请大侠们看看是什么原因,谢谢! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
wstt
2019-03-24 16:10
MSP430在处理中断的时候,先把当前寄存器压栈,然后选择最高优先级的中断源。
你只开了ADC的中断,那么就是ADC中断,在然后会关闭全局中断使能,也就是说在处理一个中断的时候,不再会相应任何可屏蔽中断。
所以你的代码如果从中断服务函数中出不来,可能是出现了死循环或者系统复位的情况。
中断中关掉ADC12IE是可以的,但是在处理结束的时候需要打开才能相应下一次的中断。
你可以到我的空间中看下中断的响应过程,可能对你有帮助。
http://home.eeworld.com.cn/my/sp ... o=blog&id=42042

一周热门 更多>

相关问题

    相关文章