请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:CC430F5137 主题中讨论的其他器件: CC430F5147
以下代码会导致具有 CC430F5137的 LPM3中的高电流消耗(100uA)。 与 CC430F5147相同的代码具有4.3uA 的更正常功耗。 它是 WOR 和 TA0中 RF1的组合。 禁用任一器件、CC430F5137会降至4.3uA。 同时删除//TA0CCTL0 |= CCIE;(* 1)将电流降至4.3uA。
我缺少什么?
void main( void )
{
WDTCTL = WDTPW | WDTHOLD | WDTCNTCL;
P1OUT = 0x00;
P1DIR = 0xff;
P1IES = 0x00;
P2OUT = 0x80;
P2DIR = 0xdf;
P2IES = 0x00;
P3OUT = 0x00;
P3DIR = 0xff;
P5OUT = 0x00;
P5DIR = 0x03;
PJOUT = 0x00;
PJDIR = 0xff;
PMMCTL0_H = 0xA5;
SVSMHCTL = 0;
SVSMLCTL = 0; //SVSLFP;
PMMCTL0_H = 0x00;
// TA0
TA0CTL = TASSEL__ACLK | TACLR | ID__4;
TA0EX0 = TAIDEX_1;
TA0CTL |= MC__CONTINUOUS;
PMMCTL0_H = 0xA5;
PMMCTL0_L = 0; PMMHPMRE_L; // PMMHPMRE_L=52uA, 0=200uA
PMMCTL0_H = 0x00;
// RF1, Init WOR
strobe_command(RF_SRES);
strobe_command(RF_SNOP);
strobe_command(RF_SCAL);
strobe_command(RF_SIDLE);
strobe_command(RF_SRX);
strobe_command(RF_SWOR);
// TA0, Start stop
TA0CCR0 = TA0R+200;
TA0CCTL0 |= CCIE; // *1 cc430f5137: With 85uA, Without 4,4uA / cc430f5147: With or Withoout 4,3uA
__bis_SR_register(GIE);
__bis_SR_register(LPM3_bits);
P3DS = 0x80; // LED Strong drive
P3OUT = 0x80; // LED On
while(1);
}
static void __attribute__((__interrupt__(TIMER0_A0_VECTOR))) _io_timerA0_ISR0 (void) //CC0
{
TA0CCTL0 &= ~(CCIE|CCIFG);
}