#include "SmartM_M0.h"
#define __KEYISR EINT1_IRQHandler
#define DEBUGMSG printf
/****************************************
*函数名称:KeyIntInit
*输 入:无
*输 出:无
*功 能:按键中断初始化
******************************************/
VOID KeyIntInit(VOID)
{
P3_MFP = (P3_MFP & (~P33_EINT1_MCLK)) | EINT1; //P3.2引脚设置为外部中断
DBNCECON &= ~ICLK_ON;
DBNCECON &= DBCLK_HCLK;
DBNCECON |= SMP_256CK; //设置防反弹采样周期选择
P3_DBEN |= DBEN3; //使能P3.2防反弹功能
P3_IMD &= IMD3_EDG;
P3_IEN |= IF_EN3; //设置外部中断1为下降沿触发
NVIC_ISER |= EXT_INT1;
}
/****************************************
*函数名称:McuSleepDeep
*输 入:无
*输 出:无
*功 能:MCU进入睡眠模式
******************************************/
VOID McuSleepDeep(VOID)
{
Delayms(20);
PROTECT_REG
(
/* 进入睡眠模式 */
SCR |= SLEEPDEEP;
/* 禁止掉电模式下唤醒的中断中断使能 */
PWRCON &= ~PD_WU_IE;
PWRCON &= ~PD_WAIT_CPU;
PWRCON |= PWR_DOWN_EN;
)
Delayms(20);
}
|