打印
[其它应用]

问下一个NOP()是延时多久,怎么计算的

[复制链接]
1574|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yufe|  楼主 | 2018-1-27 15:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问下一个NOP()是延时多久,怎么计算的
沙发
yufe|  楼主 | 2018-1-27 15:24 | 只看该作者

还有88F54这款芯片为什么不支持NOP延时了

使用特权

评论回复
板凳
llia| | 2018-1-27 15:26 | 只看该作者

不懂,帮顶了

使用特权

评论回复
地板
yufe|  楼主 | 2018-1-27 15:28 | 只看该作者
有什么设置问题吗

使用特权

评论回复
5
langgq| | 2018-1-27 15:32 | 只看该作者

就是汇编NOP指令了。
和芯片没有关系,看看KEIL的帮助,要包含一个H文件。

使用特权

评论回复
6
wangzsa| | 2018-1-27 15:34 | 只看该作者

#include “intrins.h”

LZ可以善用KEIL help 这样更快

使用特权

评论回复
7
hanwe| | 2018-1-27 15:38 | 只看该作者

51里面是一个时钟周期

使用特权

评论回复
8
guoyt| | 2018-1-27 15:41 | 只看该作者
这个延迟时间可以通过KEIL软件 准确debug 出来的?

使用特权

评论回复
9
lium| | 2018-1-27 15:44 | 只看该作者
51里面是一个机器周期吧

使用特权

评论回复
10
yufe|  楼主 | 2018-1-27 15:47 | 只看该作者


好的,我try一下

使用特权

评论回复
11
hanwe| | 2018-1-27 15:51 | 只看该作者
一个NOP()就是一个机器周期.
晶振频率12M
假如是标准51,一个机器周期是1uS.
假如是88F54,一个机器周期是1/12uS.

88F54可以使用_nop_().只是你仿真时,如在_nop_()处设断点,程序不一定会停在此处.

正确的做法是:_nop_();_nop_();_nop_();_nop_();//

使用特权

评论回复
12
hanwe| | 2018-1-27 15:52 | 只看该作者
楼主,这已经超出了其容许的输入电平范围的,会造成系统不稳定的

使用特权

评论回复
13
lium| | 2018-1-27 16:00 | 只看该作者
顺便说下:
标准51是12T,一个机器周期是12个晶振周期.
88F54是1T,一个机器周期是1个晶振周期.运算速度是标准51的12倍.

还有些51是2T,运算速度是标准51的6倍.
还有些51是6T,运算速度是标准51的2倍.

使用特权

评论回复
14
zhanglli| | 2018-1-27 16:02 | 只看该作者
12M中表示1us;6M中表示2us;24M中表示0.5us(微妙) 1S=1000ms=1000 000us;

使用特权

评论回复
15
zhuww| | 2018-1-27 16:06 | 只看该作者
NOP,常在通信驱动中用到,如IIC(I2C)等。。。

使用特权

评论回复
16
wangzsa| | 2018-1-27 16:10 | 只看该作者

包括在库函数intrins.h中的 表示空循环一个机器指令的时间

使用特权

评论回复
17
yufe|  楼主 | 2018-1-27 16:15 | 只看该作者
唉,还是没有什么结果,算了,先结贴吧,多谢大家啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

983

主题

10170

帖子

1

粉丝