zoukankan      html  css  js  c++  java
  • _nop_();

    C语言中没有_nop_()函数。

    在51C中一般包含在#include “intrins.h” 头文件中。

    该函数是在51单片机中用的延时函数,表示执行一条没有什么意义的指令,延时一个指令周期,有的指令周期是两个或两个以上的机械周期,但是_nop_();指令需要的只是一个机械周期也就是12个时钟周期(震荡周期)。

    51单片机中,1个机械周期 = 12个时钟周期 = 12 * ( 1 / f)。(f 为晶振频率)。

    如果只用的是12MHZ的晶振,那么 一个机械周期就是1us;也就是说:

    nop(); 指令的延迟时间为 1us。可以较为精确得控制延迟时间。

    nop指令的作用:
    1)就是通过nop指令的填充(nop指令一个字节),使指令按字对齐,从而减少取指令时的内存访问次数。(一般用来内存地址偶数对齐,比如有一条指令,占3字节,这时候使用nop指令,cpu 就可以从第四个字节处读取指令了。)
    2)通过nop指令产生一定的延迟,但是对于快速的CPU来说效果不明显,可以使用rep前缀,多延迟几个时钟。
    3)i/o传输时,也会用一下 nop,等待缓冲区清空,总线恢复;
    4)清除由上一个算术逻辑指令设置的flag位;

    愿: 可以帮助到您, 感谢您的阅读。
  • 相关阅读:
    BestCoder Round #84
    codeforces#689BMike and Shortcuts
    POJ2985 并查集+线段树 求第k大的数
    Trie树模板 POJ1056
    新建zabbix数据库
    python输出菱形
    wmi获取计算机信息
    python测试IP地址是否ping通
    手机安装python环境
    Centos 8 安装zabbix 爬坑
  • 原文地址:https://www.cnblogs.com/caochucheng/p/14960283.html
Copyright © 2011-2022 走看看