430中为什么在AD中断中ADC12IFG一直为1,即使在中断中读完数据也不清0,一直在执行中断采集?跳不出中断?

2024-12-25 17:39:11
推荐回答(3个)
回答1:

主程序是空的当然进不去,你再次AD转换应该能进,主循环里放ADC12CTL0 |= ADC12SC;
不需要自己清除采样中断标志!! MSP430的ADC模块具有16个采样通道,中断使能寄存器的16位分别用于使能和关闭对应通道的中断功能。中断标志寄存器ADC12IFG的16位分别对应16个采样通道,当对应通道采样结束后,采样结果存于相应的ADC12MEMx中后,相应的中断标志位被置位,待读取采样结果ADFC12MEMx后,采样中断标志位被硬件自动清零!! 因此,在发生采样中断后,必须读取采样结果(同时自动清除采样中断标志),然后才能继续进行采样!

回答2:

msp430我不太了解,不过你的问题我可以告诉你,中断是有一个管脚,这个管脚在AD转换完成后ADC12中有个寄存器叫ADC12IFG,里面16位对应每一个ADC12,Vzscug

回答3:

一直为1是因为一直有数据进行转换或者数据转换还没有完成,又或者是它是一个多源中断需要你手动清楚