大家好、
我有一些在 LPM4期间具有高睡眠电流的代码。 我已经创建了一个分支、除了 a) 设置所有引脚分配、 b) 设置一些时钟、ADC、UART 设置、 c)进入 LPM4睡眠 模式、因此基本上系统开启、执行一些内务处理并进入睡眠模式。
LPM4中的高睡眠电流可能与硬件相关、但在提出建议之前、我需要确保软件具有项目符号保护。
这是一个代码片段。 所有引脚分配(P1DIR、P1REN、P1OUT 等)均设置为输出高电平或低电平、无电阻使能。 所有端口选择设置(PSEL、P2SEL、P3SEL 等)都设置为0、因此端口都是通用 I/O
////////////////////////////////////////////////////////////////////////////// 代码片段////////////////////////////////////////////////////////////////////////////////////////////
DCOCTL = 0;//选择最低 DCOx 和 MODx 设置
BCSCTL1 = CALBC1_1MHz;//设置 DCO
DCOCTL = CALDCO_1MHz;
//禁用 UART
UCA0CTL1 |= UCSWRST;//**停用 USCI 状态机**
IE2 = 0;//禁用所有 USCI_A0中断
//禁用 ADC 转换
ADC10CTL0 &=~ADC10IE;
ADC10CTL0 &=~ADC10ON;
ADC10CTL0 &=~REFON;
ADC10CTL0 &=~ADC10SHT_2;
ADC10CTL0 &=~SREF_1;
//停止看门狗计时器
WDTCTL = WDTPW + WDTHOLD;//停止 WDT -也将时钟复位到 SMCLK
_bis_SR_register (LPM4_bits);//输入 LPM4 -未启用全局中断
////////////////////////////////////////////////////////////////////////////// 代码片段的结尾////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
执行上述操作是否有任何问题? 在进入 LPM4之前、我还应该做什么?
我的理解是、LPM4基本上会禁用所有功能-时钟等、因此这些设置实际上无关紧要。 是否有人对进入 LPM4有任何代码引用?
谢谢!