打印
[其它应用]

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

[复制链接]
354|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gongche|  楼主 | 2020-11-16 21:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问下一个NOP()是延时多久,怎么计算的

使用特权

评论回复
沙发
yufe| | 2020-11-16 21:29 | 只看该作者
还有88F54这款芯片为什么不支持NOP延时了

使用特权

评论回复
板凳
huwr| | 2020-11-16 21:32 | 只看该作者
不懂,帮顶了

使用特权

评论回复
地板
huanghuac| | 2020-11-16 21:39 | 只看该作者
有什么设置问题吗

使用特权

评论回复
5
happy_10| | 2020-11-16 21:42 | 只看该作者

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

使用特权

评论回复
6
bqyj| | 2020-11-16 21:46 | 只看该作者

#include “intrins.h”

LZ可以善用KEIL help 这样更快

使用特权

评论回复
7
wenfen| | 2020-11-16 21:50 | 只看该作者
51里面是一个时钟周期

使用特权

评论回复
8
zhuhuis| | 2020-11-16 21:56 | 只看该作者
这个延迟时间可以通过KEIL软件 准确debug 出来的?

使用特权

评论回复
9
tian111| | 2020-11-16 22:00 | 只看该作者
51里面是一个机器周期吧

使用特权

评论回复
10
gongche|  楼主 | 2020-11-16 22:03 | 只看该作者
好的,我try一下

使用特权

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

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

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

使用特权

评论回复
12
chenho| | 2020-11-16 22:13 | 只看该作者
楼主,这已经超出了其容许的输入电平范围的,会造成系统不稳定的

使用特权

评论回复
13
chenho| | 2020-11-16 22:17 | 只看该作者

顺便说下:
标准51是12T,一个机器周期是12个晶振周期.
88F54是1T,一个机器周期是1个晶振周期.运算速度是标准51的12倍.

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

使用特权

评论回复
14
chenho| | 2020-11-16 22:21 | 只看该作者
12M中表示1us;6M中表示2us;24M中表示0.5us(微妙) 1S=1000ms=1000 000us;

使用特权

评论回复
15
huwr| | 2020-11-16 22:25 | 只看该作者
NOP,常在通信驱动中用到,如IIC(I2C)等。。。

使用特权

评论回复
16
huanghuac| | 2020-11-16 22:28 | 只看该作者
包括在库函数intrins.h中的 表示空循环一个机器指令的时间

使用特权

评论回复
17
gongche|  楼主 | 2020-11-16 22:31 | 只看该作者
唉,还是没有什么结果,算了,多谢大家啦

使用特权

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

本版积分规则

768

主题

9410

帖子

2

粉丝