工具/软件: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
