以下程序是实验msp430单片机在8M下使P2.0口输出方波。但是烧进单片机里发现P2.0口频率很低(可以看见led在那里闪)。照理P2.0口输出频率很高才对啊 50000/8M=0.00625 秒才对啊 还有改为 BCSCTL2|=SELM_2+DIVM_3; 改后根本没有分频啊; 求高手帮我分析下为什么啊。
#include <msp430x14x.h>
void main(void)
{
unsigned int i;
WDTCTL=WDTPW+WDTHOLD; //停止看门狗
P2DIR|=0xFF; //P5.4输出
P2OUT|=0xFF; //P5.4用作MCLK输出
BCSCTL1&=~XT2OFF; //XT2有效
do
{
IFG1&=~OFIFG; //清除振荡器失效标志
for(i=0xFF;i>0;i--); //稳定时间
}
while((IFG1&OFIFG)!=0); //如果振荡器失效标志存在
BCSCTL2|=SELM_2; //MCLK=XT2
TACTL=TASSEL_2+TACLR;
CCTL0=CCIE;
CCR0=50000;
TACTL|=MC0;
_EINT();
for(;;)
{
}
}
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
P2OUT^=0x01;
}