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

msp430f5438a 程序跑飞

void main()
{
WDTCTL = WDT_ADLY_1000; // WDT 250ms, ACLK, interval timer
SFRIE1 |= WDTIE; // Enable WDT interrupt check_clk(); TA1_Init();
_EINT();
while(1);
}
void check_clk(void)
{
P11SEL |= BIT0+BIT1+BIT2; // P11DIR = BIT0+BIT1+BIT2; // P11.1-2 to output direction
P5SEL |= 0x0C; // Port select XT2
P7SEL |= 0x03; // Select XT1
UCSCTL6 &= ~(XT1OFF+XT2OFF); // XT1 On
UCSCTL6 |= XCAP_3; UCSCTL3 |= SELREF_2; // FLLref = REFO
// Since LFXT1 is not used,
// sourcing FLL with LFXT1 can cause
// XT1OFFG flag to set
UCSCTL4 |= SELA_2; // ACLK=REFO,SMCLK=DCO,MCLK=DCO
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
// Clear XT2,XT1,DCO fault flags
SFRIFG1 &= ~OFIFG; // Clear fault flags
_NOP();_NOP();_NOP();_NOP();_NOP();
_NOP();_NOP();_NOP();_NOP();_NOP();
}while (SFRIFG1&OFIFG); // Test oscillator fault flag

UCSCTL6 &= ~(XT2DRIVE0+XT1DRIVE_3); // Decrease XT2 Drive according to
UCSCTL4 |= SELS_5 + SELM_5+SELA_0; // SMCLK=MCLK=XT2
UCSCTL5 |= DIVPA_0+DIVS_0+DIVM_0; // SMCLK=MCLK=XT2}
#pragma vector = WDT_VECTOR //看门狗定时器
__interrupt void WDT_ISR(void)
{
fre=flag*65535+TA1R;
flag=0;
TA1R=0;
}

void TA1_Init()
{
TA1CTL=TASSEL_0+MC_1+TACLR;
TA1CCR0=65535;
TA1CCTL0|=CCIE;
P2SEL|=BIT0;
}

在这程序在全速运行时会跑飞,单步调试时可以正常通过初始化函数,然后再点全速运行的时候又会跑飞。  跑飞(两个中断都进不去)

但是当我把红色语句改成UCSCTL5 |= DIVPA_0+DIVS_0+DIVM_1; // SMCLK=MCLK=XT2 ,

整个程序有可以正常运行。

求解释,这个问题?

Eric Fu:

你好,

请问你的XT2外部晶振的频率是多少?另外,可以试试先把XT2的驱动能力设置到最大,有可能是因为XT2的驱动能力过小,无法驱动你外接晶振的频率。

Zhenpeng Mo:

回复 Eric Fu:

怎么把XT2的驱动能力设置到最大呢??

Zhenpeng Mo:

回复 Zhenpeng Mo:

如果我XT2外接25MHz,旁边的两个电容是22pF,电源管理已经改好,XT2的驱动能力也已经改好,输出的波形如下,请问这样的波形正常?谢谢各位为我耐心地做下解答!

Lina Lian:

回复 Zhenpeng Mo:

Zhenpeng Mo,

Zhenpeng Mo怎么把XT2的驱动能力设置到最大呢??

如下图所示,将UCSCTL6寄存器中的XT2DRIVE设置为对应XT2频率响应的驱动能力。

Lina Lian:

回复 Zhenpeng Mo:

Zhenpeng Mo,

不知你的输出波形是如何观看的?是直接用示波器接在XT2上看的,还是现将其设置为系统时钟,后将其从对应管脚引出再用示波器观看的?更推荐第二种,因为第一种有可能会导致晶体停振,尤其当晶体是低频晶体时,25MHz高频晶体的话,稳定性会好一些。

从波形上看,是正确的。频率约为25MHz.

Zhenpeng Mo:

回复 Lina Lian:

谢谢你的解答,我是采用的后者,驱动能力的修改也已经通过查询用户手册已经修改好,谢谢你的耐心解答

赞(0)
未经允许不得转载:TI中文支持网 » msp430f5438a 程序跑飞
分享到: 更多 (0)