有看过SMAC3.1C的Lighting Demo程序的吗
 
- UID
- 104631
- 性别
- 男
|
从你贴的程序看好像和MCU唤醒没有关系,都是初始化的过程
MCU先采用内部时钟,等13192稳定后采用13192过来的时钟信号 |
|
|
|
|
|
 
- UID
- 104631
- 性别
- 男
|
我没有3。1的代码,对照4.0的代码,让MCU进入stop模式的是
KBDWAIT(); 这个语句在你程序中被注释掉了。
这个是让MCU进入stop模式的设置语句
前面的语句放开了KBI中断,如果有按键信息的话,MCU就会被唤醒。一般来说是PB0被按下产生中断,唤醒MCU。置于PB1能唤醒,可能是PB1的中断也被放开了。 |
|
|
|
|
|
 
- UID
- 104631
- 性别
- 男
|
这个过程大致是这样的,KBDWAIT前面的程序放开了KBI键盘中断,同时设定PB0中断使能。因为13192休眠后没有时钟输出,所以MCU转入采用内部振荡时钟,然后执行了KBDWAIT(),你可以点击进去看,这个函数其实就是一句汇编指令stop,让MCU进入stop模式。当PB0被按下后,因为PB0中断使能,KBI中断使能,所以产生键盘中断唤醒MCU。MCU醒来后执行KBI中断函数,然后从MCUstop语句的下一句开始执行,也就是u8Dsn++; |
|
|
|
|
|