主题中讨论的其他部件: MSP430F5436
我的主板上有一个带外部的MSP430F5359处理器
14Mhz XT2晶体. XT2用作ACLK和SMCLK的时钟源。
用于闪烁LED的定时器ISR使用ACLK作为时钟源。
当XT2用作时,功耗不会下降
输入LPM3时ACLK的时钟。 处理器似乎可以
当XT2用作时钟源时,不会进入休眠模式。
如果ACLK的时钟源更改为REFOCLK (UCSCTL4 =拉美经济体系__REFOCLK + TELS__REFOCLK + SELM__XT2CLK)
进入LPM3时功耗下降,并且情况正常。
在LPM3中,当外部晶体用作ACLK的时钟源时,为什么我们继续消耗电力? 。
// Timer1中断服务例程
#pragma vector=Timer1_A0_vector
__interrupt void Timer1_A0_ISR(void){
P8OUT ^= BIT1;//切换LED
}
INT MAIN ( void )
{
WDTCTL = WDTPW + WDTHOLD;
P1SEL = 0x00;P1DIR = 0x00;P1IE = 0x00;
P2SEL = 0x00;P2DIR = 0x00;P2IE = 0x00;
P3SEL = 0x0F;P3DIR = 0x00;
P4SEL = 0x00;P4DIR = 0x00;
P5SEL = 0x00;P5DIR = 0x00;
P6SEL = 0x00;P6DIR = 0x00;
P7SEL || BIT2+BIT3;
P8SEL = 0x00; P8DIR |= 0x02;
P9SEL = 0x00;P9DIR = 0x00;
UCSCTL0 = 0x0000;
UCSCTL1 = DISMOD + DCORSEL_0;
UCSCTL2 = FLLN0 + FLLD_0;
UCSCTL3 = SELREF_REFCLK | FLLREFDIV_0;
// UCSCTL4 =拉美经济体系_ REFOCLK + TELS__REFOCLK + SELM__XT2CLK ;//LPM2 工作电流消耗低
UCSCTL4 =拉美_ XT2CLK + SESS_ REFOCLK + SELM_ XT2CLK;//电流消耗约为80 mA
UCSCTL5 = DIVM__1 + DIVs__16 + DIVA__16;
UCSCTL6 = XT1OFF + XCAP_3+XT1DRIVE_0+XT2OFF + XT2DRIVE_0;
UCSCTL8 = 0x00;//禁用条件时钟请求
同时(SFRIFG1和OFIFG){ //检查OFIFG故障标志
同时(((SFRIFG1 & OFIFG)) //检查OFIFG故障标记
{
//清除OSC故障标志
UCSCTL7 &=~(DCOFFG + XT1LFOFFG + XT1HFOFFG + XT2OFFG);//清除XT2,XT1,DCO故障标志
SFRIFG1 &=~OFIFG; //清除OFIFG故障标记
}
UCSCTL6 &=~(XT1DRIVE1_L+XT1DRIVE0);//降低驱动强度
}
TA1CCTL0 = CCIE;
TA1CCR0 = 5万;
TA1CTL = tassel_1 + MC_1 + TCLR;// ACLK是时钟源
__bis_sr_register(LPM3_bits + GIE); //输入LPM3,启用中断
__no_operation();
}