我现在用ATTiny13 ,需要进入掉电模式,而且INT0口已经被占用了,我只能用引脚变化来唤醒。
但是我用下面的语句怎么也进入不了掉电模式:
GIMSK=0X20 ; // 引脚变化中断使能
PCMSK=0x18 ; // 设定引脚PCINT3 和 PCINT4 变化触发中断
MCUCR&=0x0F; // 清除标志位
MCUCR|=0x03; // SE置位 设定为掉电模式
// _SLEEP();
asm volatile("sleep"::);
而且如果用_SLEEP(); 编译还提示有错误,真是想不明白为啥 ?
无奈之下我只好用GCC自带的#include <avr/sleep.h>头文件
用如下命令进入掉电模式:
set_sleep_mode(SLEEP_MODE_PWR_DOWN); //设定为掉电模式
sleep_mode(); //进入睡眠状态
可以顺利进入掉电模式了,但是却不能唤醒,不知道这个在哪里设置唤醒方式?
希望高手能帮我解决上面的两个问题!! |