关于PIC单片机休眠唤醒的问题

2020-02-08 09:24发布

昨晚看12f675的数据手册关于休眠部分的讲解有不理解的地方,向有用过这个功能的朋友们请教下

(原文件名:to ourdev.jpg)
数据手册中这句话的意思做何解呢?
如这样一段:

SLEEP();
NOP();
a=1;

原意是在sleep后加一条nop,就可以使sleep以后·所有·指令都不执行了…
还是,为了不想执行SLEEP后的·下一条·指令,可以在这里放个NOP,
如果是后者的话这中文翻译的不是有歧义么….,应该改成“如果不想执行sleep指令后的那条指令,用户可以在sleep后面放置一条NOP指令”
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
xwhua188
1楼-- · 2020-02-08 12:42
 精彩回答 2  元偷偷看……
szxszx
2楼-- · 2020-02-08 18:37
回复【1楼】xwhua188  
我觉得应该是在sleep后放nop指令,不想执行,其实就是让其执行一次空操作吧。
-----------------------------------------------------------------------

正解
wangjiati
3楼-- · 2020-02-08 21:49
回复【1楼】xwhua188
我觉得应该是在sleep后放nop指令,不想执行,其实就是让其执行一次空操作吧。
-----------------------------------------------------------------------

指令使用的是流水结构. 在执行sleep期间.下一条指令将被读取. 唤醒后第一步就是执行读取的指令.  如果为空指令..唤醒以后第一件事就什么也不干.读取吓一跳执行指令.
464736921
4楼-- · 2020-02-09 01:57
了解了,看来还是得看E文啊...中文翻译过来的不靠谱...
s200661524
5楼-- · 2020-02-09 06:45
可以这么理解吗:执行sleep的时候sleep下一条指令已经被预取了,但是这条指令在流水线上不会被执行,而是直接给丢弃了,如果这一条是系统关键指令可能会造成系统崩溃,所以需要加一条NOP来防止这种情况的发生,没看过E文,猜测的!
464736921
6楼-- · 2020-02-09 09:31
 精彩回答 2  元偷偷看……

一周热门 更多>