请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号: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) }