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.

[参考译文] 编译器/MSP430F5419A:MSP430F5419A

Guru**** 2535590 points
Other Parts Discussed in Thread: MSP430F5419A

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/940839/compiler-msp430f5419a-msp430f5419a

器件型号:MSP430F5419A

工具/软件:TI C/C++编译器

大家好、

我们正在使用 MSP430F5419A、在某些情况 下、我们将通过执行以下方法将其置于休眠模式。

#if defined __MSP430_has_UCS__
//根据249代码添加时钟配置
//设置为默认值
// LF 的最低电流消耗
UCSCTL6 = XT2OFF | XT1DRIVE_0 | XCAP_3 | SMCLKOFF;// 12pF 负载
UCSCTL0 = 0;//确保我们不会超频...
UCSCTL1 = DCORSEL_2;//最差情况范围6.0 - 23.7MHz
UCSCTL2 = FLLD_1 | 31;//从8MHz 开始将244倍乘~7995392Hz - 276ppm
UCSCTL4 = SELA_XT1CLK | SELESS__DCOCLKDIV | SELM_DCOCLKDIV;

UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
// DCO 范围位已经存在时、DCO 的最坏情况稳定时间
//已更改 n x 32 x 32 x f_MCLK / f_FLL_reference。 请参阅5xx 中的 UCS 一章
// UG 进行优化。
// 32 x 32 x 8 MHz/32、768Hz = 250000 = MCLK 周期、DCO 才能稳定
_DELAY_CYCLES (50000);

//循环直到 XT1、XT2和 DCO 故障标志被清除
操作

UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
//清除 XT2、XT1、DCO 故障标志
SFRIFG1 &=~OFIFG;//清除故障标志
} while (SFRIFG1&OFIFG);//测试振荡器故障标志
#Elif defed __MSP430_has_BC2__
BCSCTL1 = XT2OFF + RSEL0 + RSEL1 + RSEL2;// DCO 缺省
DCOCTL = DCO0 + DCO1;// DCO 默认值
BCSCTL2 = 0;
其他
BCSCTL2 = DIVM_3;// BCL5芯片错误权变措施
BCSCTL1 = XT2OFF + RSEL2;// DCO 缺省
BCSCTL2 = 0;// BCL5芯片错误权变措施
DCOCTL = DCO0 + DCO1;// DCO 默认值
#endif

该代码是否正常、以便将 MSP 置于低功耗模式?

或者我们是否也必须执行以下步骤?

(_bis_SR_register (_SR_GIE \
|_SR_CPU_OFF \
|_SR_SCG0 \
|_SR_SCG1 \
|_SR_OSC_OFF))

请确认。

谢谢、此致、

Swarna.N

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

    施斯瓦尔纳

    是的。  

    此外、如果您不知道、可以使用预定义的"内在函数"。  它们位于器件的".h"头文件中。

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

    您好!

    感谢您的回答。

    是的,我检查了将 MSP 置于低功耗模式的功能,

    在我们的项目中、我看到这部分代码、不确定该代码是否会真正将 MSP 推送到低功耗模式?

    请确认。

    以下代码将使 MSP 进入低功耗模式?

    #if defined __MSP430_has_UCS__
    //根据249代码添加时钟配置
    //设置为默认值
    // LF 的最低电流消耗
    UCSCTL6 = XT2OFF | XT1DRIVE_0 | XCAP_3 | SMCLKOFF;// 12pF 负载
    UCSCTL0 = 0;//确保我们不会超频...
    UCSCTL1 = DCORSEL_2;//最差情况范围6.0 - 23.7MHz
    UCSCTL2 = FLLD_1 | 31;//从8MHz 开始将244倍乘~7995392Hz - 276ppm
    UCSCTL4 = SELA_XT1CLK | SELESS__DCOCLKDIV | SELM_DCOCLKDIV;

    UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
    // DCO 范围位已经存在时、DCO 的最坏情况稳定时间
    //已更改 n x 32 x 32 x f_MCLK / f_FLL_reference。 请参阅5xx 中的 UCS 一章
    // UG 进行优化。
    // 32 x 32 x 8 MHz/32、768Hz = 250000 = MCLK 周期、DCO 才能稳定
    _DELAY_CYCLES (50000);

    //循环直到 XT1、XT2和 DCO 故障标志被清除
    操作

    UCSCTL7 &=~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG);
    //清除 XT2、XT1、DCO 故障标志
    SFRIFG1 &=~OFIFG;//清除故障标志
    } while (SFRIFG1&OFIFG);//测试振荡器故障标志
    #Elif defed __MSP430_has_BC2__
    BCSCTL1 = XT2OFF + RSEL0 + RSEL1 + RSEL2;// DCO 缺省
    DCOCTL = DCO0 + DCO1;// DCO 默认值
    BCSCTL2 = 0;
    其他
    BCSCTL2 = DIVM_3;// BCL5芯片错误权变措施
    BCSCTL1 = XT2OFF + RSEL2;// DCO 缺省
    BCSCTL2 = 0;// BCL5芯片错误权变措施
    DCOCTL = DCO0 + DCO1;// DCO 默认值
    #endif

    谢谢、此致、

    Swarna.N

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

    您好、Swarna、

    否  您显示的代码部分仅配置系统时钟。  首先在代码中执行该操作、然后使用内在函数将 CPU 置于其中一种 LPM 模式中。

    下面是 TI Resource Explorer 中 MSP430F5419A 示例选择的示例代码。

    e2e.ti.com/.../example.c

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

    您好、Swarna、

    我将假定您能够解决您的问题、因此我将继续并关闭此主题。
    如果情况并非如此,请单击“这无法解决我的问题”按钮,并使用更多信息回复此主题。
    如果此主题锁定、请单击"提出相关问题"按钮、然后在新主题中描述您的问题的当前状态以及您可能需要帮助我们帮助解决您的问题的任何其他详细信息。