unsignedinti;WDTCTL=WDTPW+WDTHOLD;//停止WDTP5DIR|=0x10; //P5.4输出P5SEL=0x10;//P5.4用作MCLK输出BCSCTL1&=~XT2OFF;//XT2有效do{ IFG1&=~OFIFG; //清除振荡... unsigned int i;
WDTCTL = WDTPW + WDTHOLD; // 停止WDT
P5DIR |= 0x10; // P5.4 输出
P5SEL = 0x10; // P5.4 用作MCLK输出
BCSCTL1&=~XT2OFF; // XT2有效
do {
IFG1&=~OFIFG; // 清除振荡器失效标志
For(i=0xFF; i>0; i=--); // 稳定时间
}
while(IFG1&OFIFG)!=0); // 如果振荡器失效标志存在
BCSCTL2|=SELM1; // MCLK=XT2
for(;;) ;
不需要自己清除采样中断标志,MSP430的ADC模块具有16个采样通道,中断使能寄存器的16位分别用于使能和关闭对应通道的中断功能.中断标志寄存器ADC12IFG的16位分别对应16个采样通道,当对应通道采样结束后,采样结果存于相应的ADC12MEMx中后,相应的中断标志位被置位,待读取采样结果ADFC12MEMx后,采样中断标志位被硬件自动清零!因此,在发生采样中断后,必须读取采样结果(同时自动清除采样中断标志),然后才能继续进行采样。