之前想测试一下当使用Sleep Timer唤醒Power Mode时,Sleep Timer计数器的值,但是一直没有能够成功从Power Mode下醒过来。
经过一段尝试后,终于可以了。发现有几个措施要做。
初始化时须打开WORIRQ中的中断允许WORIRQ.EVENT0_MASK。然后必须设置IEN0.STIE,以及全局中断允许IEN0.EA。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
退出Power Mode后,要能够重新进入并退出Power Mode,必须做以下的事情:
l 清除Sleep Timer Interrupt Flag;
l 假如是进入Power Mode 1,须重新设置main clock source(而且必须设为crystal);Power Mode 2和PM0则都不需要重新设置;(Power mode 3不能通过Sleep Timer唤醒)
INT_GLOBAL_ENABLE(TRUE);
INT_ENABLE(INUM_ST, INT_ON);
while (1) {
SET_POWER_MODE(1);
P1_0 = !P1_0;
IRCON = IRCON&0x7F;
modSetMainClockSourceCrystal();
}
文章评论(0条评论)
登录后参与讨论