请教9s08GT60怎么才能进入STOP3休眠状态呢?
- UID
- 113380
- 性别
- 女
|
请教9s08GT60怎么才能进入STOP3休眠状态呢?
主循环下设置Stop3模式按照datasheet上就是那么设置的。小弟不知道那边出了问题
,那位大虾能帮忙解答一下。
for(;;) {
SOPT_STOPE=1; /* STOP IE */
SPMSC2=SPMSC2&~0x03;/* Enable deep sleep mode stop3. */
} /* loop forever */ //end for |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
|
|
|
|
|
- UID
- 113380
- 性别
- 女
|
明白了
谢谢版主关心,回复的好快阿。
忘加命令了,用KBDWAIT才进入休眠状态。
SRTISC=SRTISC&~0x07; /* Disable wake up timer. */
SPMSC2=SPMSC2&~0x03;/* Enable deep sleep mode stop3. */
for(;;) {
KBDWAIT;
} /* loop forever */ //end for |
|
|
|
|
|
- UID
- 113380
- 性别
- 女
|
请教版主
有什么办法通常情况下MCU工作在STOP1状态下,然后周期性的MCU在STOP3状态下检测一段时间呢?(因为想用stop1状态比较省电)
[em27][em27] |
|
|
|
|
|
- UID
- 104631
- 性别
- 男
|
设置好了以后要加上 asm STOP指令才会进入Stop模式。 |
|
|
|
|
|
- UID
- 104631
- 性别
- 男
|
你的意思是从STOP1出来再转成STOP3模式然后检测一段时间再进入STOP1? 这个稍稍有些麻烦,可以在STOP1出来以后,设置好RTI, 进入STOP3以后,到时间用RTI唤醒MCU,然后再进入STOP1 |
|
|
|
|
|
- UID
- 104976
- 性别
- 男
|
|
|
|
|
|
- UID
- 97368
- 性别
- 男
|
stop1的模式下RTI已经关闭了,不能够唤醒,是不是啊? stop1是不是只能用reset唤醒阿? |
|
|
|
|
|
- UID
- 104631
- 性别
- 男
|
对,stop1模式下无法用RTI。stop1只能用reset和IRQ(外部中断)来唤醒。 |
|
|
|
|
|
- UID
- 97368
- 性别
- 男
|
|
|
|
|
|
- UID
- 104631
- 性别
- 男
|
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
所以要在进入STOP之前将状态标志设定好。这样退出STOP后,才能判断程序要如何走。 |
|
|
|
|
|
- UID
- 141214
- 性别
- 男
|
各位老大
我依照楼主写的程式对GT60下达SOP指令
结果我用电流表看耗电流竟然是2mA
为什麽呢? 我看datasheet内是说stop3模式耗电流应该是675nA
请大家帮个忙~为什麽会这样呢?谢谢 |
|
|
|
|
|
- UID
- 104631
- 性别
- 男
|
电流大小还要考虑电压、工作频率,在stop3模式下有些模块是可选关上或者打开的 |
|
|
|
|
|
- UID
- 141214
- 性别
- 男
|
给版主
我现在作个很简单的实验,就是单纯拿一颗gt60,外部完全没接任何东西
程序如下
SRTISC=0b00110111;
ICGC2=0b00100001;
ICGC1=0b00111100;
SRTISC=0b00010100;//Disable LVD in stop
SPMSC2=0b00000100;// Enable deep sleep mode stop1.
SOPT= 0b01100011;//COP and STOP enable controls
IRQSC=0b00010000;
PTAPE=0xEF;
PTBPE=0xFF;
PTCPE=0xFF;
PTDPE=0xFF;
PTEPE=0xFF;
PTAD=0x00;
PTBD=0x00;
PTCD=0x00;
PTDD=0x00;
PTED=0x00;
KBDWAIT;
结果还是一样没有省电...电流一样不变~这是什麽问题呢?
我工作电压3v internal osc.
是那边出问题呢?
谢谢
|
|
|
|
|
|