This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] MSP430F149:设置8MHz 时钟、但 WDT 复位

Guru**** 2535650 points
Other Parts Discussed in Thread: MSP430F149

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/609018/msp430f149-setting-8mhz-clock-but-wdt-resetting

器件型号:MSP430F149

团队、

我代表我的客户发布。  他正在使用来自一个运行产品的传统'F149代码、并且在使用 IAR 7.10.3的 TS430PM64评估板的'F149上运行同一代码时遇到问题。  您能否查看以下代码以了解其是否合理? 是否有更好的方法来实现此目的?

谢谢、

Tom

"我们一直处于 SwitchTo8Mhz 时钟函数中、如下所示。

1) 1)这种传统代码是否适合进行时钟设置?

2) 2)有什么想法不起作用?

2) 2)由于 WDT 正在持续复位、我们为什么要以复位结束?

    • 即、如何确定复位的原因?"

 

void SwitchTo8Mhz 时钟(void)

{

int count;



//********* 切换到8MHz 时钟。*********

BCSCTL1 |=(XT2OFF + XTS);

_BIC_SR (OSCOFF); //对于 F149,请关闭 XT1,这样 oscfault 就不会被混淆



执行

{

IFG1&=~OFIFG;//Reset osc。 故障标志

对于(count=1;count<0xfff;count++)

{

API_WatchdogReset();

}

} while (OFIFG & IFG1);//循环只要 osc。 故障标志保持激活状态



IFG1&=~OFIFG; //复位示例 故障标志再次

为 BCSCTL2 = SELM1 + SELM0;//MCLK 8MHz 外部 xtal

DCOCTL = 0; //在省电模式中以尽可能慢的速度运行 DCO



//MCLK = 8MHz //aclk = 8MHz //smclk = DCO

} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tom、

    我不确定您的客户在这里做什么、但这不符合所述。 如果看门狗正在复位其器件、则它们不会及时"喂狗"。 看门狗定时器只能从 ACLK 或 SMCLK 运行。 默认情况下、该器件在 SMCLK 上运行。

    此外、ACLK 不能为8MHz。 ACLK 只由 LFXTAL 计时、并且没有备份或失效防护、这与较新的 MSP430中的情况相同。 此外、对于该器件上的 LFXtal、它们也不是振荡器故障电路。 我不确定到底发生了什么、但我想看门狗通过 SMCLK 计时比预期的快、因此超时。 我建议查看 TI Resource Explorer 中 MSP430F149的示例代码、因为它提供了将 DCO 和/或 MCLK 更改为 XT2以及在各种模式下使用看门狗计时器的示例。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Tom、

    以上内容是否解决了客户的问题? 由于没有响应、我将很快关闭此主题。

    此外、为了便于将来参考、在论坛中发布代码时、请使用回复框右下角的"使用富格式"链接。 进入此模式后、您就可以发布您的代码了、请单击 代码格式器的框。 我已经编辑了您的回复、以执行此操作。