- #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);
- }
|