程序进入低功耗,但查看功耗却还有好几个mA,有没有大神知道出现这种情况可能存在的原因。
主程序:
int main(void)
{
/* Chip errata */
CHIP_Init(); //Init the CPU
CMU_HFRCOBandSet(cmuHFRCOBand_1MHz);
CMU_OscillatorEnable(cmuOsc_AUXHFRCO, false, false);//ʧÄÜAUXHFRCO
CMU_OscillatorEnable(cmuOsc_LFXO, false, false);//ʧÄܵÍƵ¾§Õñ
CMU_OscillatorEnable(cmuOsc_HFXO, false, false);//ʹÄܸßƵ¾§Õñ
//Ò»¹²ËĸöʱÖÓHFPER HFCORE LFA LFB
CMU_ClockSelectSet(cmuClock_HFPER, cmuSelect_LFRCO);//¸ßƵÍâÉèÑ¡ÔñLFRC¾§Õñ
CMU_ClockSelectSet(cmuClock_CORE, cmuSelect_LFRCO);//ºËÐľ§ÕñÑ¡ÔñLFRC¾§Õñ
CMU_ClockSelectSet(cmuClock_LFA, cmuSelect_ULFRCO);//LFAÑ¡ÔñULFRCO¾§Õñ
CMU_ClockSelectSet(cmuClock_LFB, cmuSelect_LFRCO);//LFBÑ¡ÔñLFRC¾§Õñ
CMU_ClockEnable(cmuClock_CORELE, true);//ºËÐÄLEʱÖÓʹÄÜ
MyRTC_Init();
while(1)
{
EMU_EnterEM2( true );
}
}
中断初始化和中断服务程序:
void RTC_IRQHandler( void )
{
utcTick++;
if ( rtcCallBk ) //rtcCallBk ¾ÍÊǺ¯Êý MY_RTC_Handler ÔÚÖжϵ÷ÓÃÕâ¸öº¯Êý
{
rtcCallBk(); //函数中什么也没做空函数.
}
if ( !(utcTick % 10) )
{
// Event.Events |= EVENT_UPLOAD_FLASH;
}
/* Clear interrupt source */
RTC_IntClear( RTC_IFC_COMP0 ) ; //Çå³ýCOMP0ÖжÏ
}
|