此内容由EEWORLD论坛网友tiankai001原创,如需转载或用于商业用途需征得作者同意并注明出处
msp430单片机开发实录(28)
现象:
程序上电运行后,执行完端口初始化配置函数,就会进入端口中断。
试验:
在仿真环境下运行程序,发现程序运行后,在端口初始化中,为了方便,先统一把所有端口都设置为输出低电平,然后根据电路板的实际端口连接情况,再一一配置为所需要的状态。而程序中有端口中断功能及相应中断函数,端口初始化时会把该端口配置为输入口,并使能该端口中断。问题就出在这里,只要把端口设置为输入口,就会产生中断。把端口初始化开头部分的先把所有端口都设为输出口部分去掉,就不会出现此情况。
验证:
恰恰就是这个原因,先让掉电端口输出低,然后置中断端口为输入口,这时候立即检测到该端口为低,所以就进入端口中断。这大概也是MSP430单片机上电后默认所有端口都为输入口的原因,这样是避免中断的意外发生,当然,避免中断发生还要注意在使能中段寄存器控制位时,要把相应的中断标志清除。
备注:
为了防止意外中断的发生,出了端口配置要注意,还要注意在不希望发生中断的时候清除中断标志。