TI中文支持网
TI专业的中文技术问题搜集分享网站

msp430 8M晶振问题

以下程序是实验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;

}

Young Hu:

P5.4的输出频率是多少?

Charles Wu:

回复 Young Hu:

楼主没有搞清MCLK和SMCLK是两个不同的震荡源,你配置XT2为MCLK没有错,但是,在你TimerA的初始化代码中,TimerA的时钟源是SMCLK,这是你代码中没有配置的,那默认值应该只有1M左右。

赞(0)
未经允许不得转载:TI中文支持网 » msp430 8M晶振问题
分享到: 更多 (0)