AVR xmega 的 sleep模式怎么唤醒

2019-03-24 20:23发布

我做的是一个锂电池供电的系统,需要进入sleep的powerdown模式进行节电。


The only interrupts that can wake up the MCU are the Two Wire Interface address match interrupts, and asynchronous port interrupts, e.g pin change.


手册上说的可以用 外部中断(INT0 INT1 INT2)唤醒,我想问的就是  是只要发生这些中断就会被唤醒?

不能指定特定的某个中断进行唤醒吗?(INT0 INT1 都已被开启)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
sint27
1楼-- · 2019-03-25 03:40
或者在sleep_mode()函数后面重新打开也是可以的
zqjqq88
2楼-- · 2019-03-25 06:09
 精彩回答 2  元偷偷看……
哦,小法
3楼-- · 2019-03-25 07:52
zqjqq88 发表于 2015-7-28 13:54
虽然不是很熟这个处理器,但是可以在进入低功耗之后disable掉不想唤醒的就好了~只留下要用的~

在sleep_mode();之前需要把所有耗电的外设都关闭?然后在唤醒中断的服务函数里重新打开?
哦,小法
4楼-- · 2019-03-25 09:03
sint27 发表于 2015-7-28 14:35
或者在sleep_mode()函数后面重新打开也是可以的

电路板mcu上电休眠---->开机按钮唤醒---->pc开机------pc关机或者睡眠--->给出某管脚中断---->电路板mcu休眠


这个流程的话,出现两个sleepmode  怎么解?
sint27
5楼-- · 2019-03-25 11:42
哦,小法 发表于 2015-7-28 15:36
电路板mcu上电休眠---->开机按钮唤醒---->pc开机------pc关机或者睡眠--->给出某管脚中断---->电路板mcu ...

看样子你这是计算PC开机时长?
我的理解是你这个流程其实是一个循环:
while(1)
{

}
sint27
6楼-- · 2019-03-25 13:25
哦,小法 发表于 2015-7-28 15:36
电路板mcu上电休眠---->开机按钮唤醒---->pc开机------pc关机或者睡眠--->给出某管脚中断---->电路板mcu ...

看样子你这是计算PC开机时长?
我的理解是你这个流程其实是一个循环:

PC开机按钮唤醒(中断形式);

while(1)
{
if(PC关机)mcu休眠;
-------------------------
计时;
}

那么外设的重新打开操作可以放在虚线处,休眠时中断唤醒后,程序会从休眠的下一条语句开始运行

一周热门 更多>