请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430FR5994 嘿,社区,
我一直在处理一个功耗非常重要的应用程序。 所以我一直在处理即使是很小 的电力泄漏。 我发现WDT消耗的功率比额定功率高出10倍。所以请放弃您对这个问题的建议。
额定功耗数据表:0.6 uA.
实际功耗:~6uA.
注:BIT0未连接到任何设备或LED。我猜一个浮动GPIO将消耗10倍的功率。
功耗:

代码:
#include <msp430.h>
int main(void)
{
WDTCTL = WDTPW | WDTHOLD;
P1OUT = 0;
P1DIR = 0xFF;
P2OUT = 0;
P2DIR = 0xFF;
P3OUT = 0;
P3DIR = 0xFF;
P4OUT = 0;
P4DIR = 0xFF;
P5OUT = 0;
P5DIR = 0xFF;
P6OUT = 0;
P6DIR = 0xFF;
P7OUT = 0;
P7DIR = 0xFF;
P8OUT = 0;
P8DIR = 0xFF;
PJOUT = 0;
PJDIR = 0xFFFF;
// Configure GPIO
P1DIR |= BIT0; // Set P1.0 to output direction
// Disable the GPIO power-on default high-impedance mode to activate
// previously configured port settings
PM5CTL0 &= ~LOCKLPM5;
CSCTL0_H = CSKEY_H; // Unlock CS registers
CSCTL1 = DCOFSEL_6; // Set DCO = 8MHz
CSCTL2 = SELA__VLOCLK | SELS__DCOCLK | SELM__DCOCLK; // Set ACLK = VLO, MCLK = DCO
CSCTL3 = DIVA__1 | DIVS__8 | DIVM__8; // Set all dividers
CSCTL0_H = 0;
WDTCTL = WDTPW | WDTSSEL__ACLK | WDTTMSEL | WDTCNTCL | WDTIS__128M;
SFRIE1 |= WDTIE; // Enable WDT interrupt
__bis_SR_register(LPM4_bits + GIE); // Enter LPM0, enable interrupts
__no_operation(); // For debugger
}
// Watchdog Timer interrupt service routine
#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=WDT_VECTOR
__interrupt void WDT_ISR(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(WDT_VECTOR))) WDT_ISR (void)
#else
#error Compiler not supported!
#endif
{
P1OUT ^= BIT0; // Toggle P1.0 (LED)
}

