空指令怎么用的

[复制链接]
3410|12
 楼主| 栩栩如生 发表于 2012-9-15 19:19 | 显示全部楼层 |阅读模式
#define NOP() _nop_() /* 定义空指令 */
这个空指令怎么用的啊?
 楼主| 栩栩如生 发表于 2012-9-15 19:19 | 显示全部楼层
什么地方用?
司徒老鹰 发表于 2012-9-15 19:21 | 显示全部楼层
可以当很短时间的延时使用
 楼主| 栩栩如生 发表于 2012-9-15 19:22 | 显示全部楼层
就这些了?
juventus9554 发表于 2012-9-15 19:26 | 显示全部楼层
uchar Read(void) /*读一个字节的数据,并返回该字节值*/   
{   
        
    uchar temp=0;   
        
    uchar temp1=0;   
        
    uchar BitCounter=8;   
        
    Sda=1;   
        
    do{         
        Scl=0;   
            
        _nop_ ();   
            
        _nop_ ();   
            
        _nop_ ();   
            
        _nop_ ();   
            
        Scl=1;   
            
        _nop_ ();   
            
        _nop_ ();   
            
        _nop_ ();   
            
        _nop_ ();   
            
        if(Sda) /*如果Sda=1;*/               
            temp=temp|0x01; /*temp的最低位置1*/         
        else               
            temp=temp&0xfe; /*否则temp的最低位清0*/   
            
        if(BitCounter-1)               
        {     
            temp1=temp<<1;              
            temp=temp1;            
        }   
            
        BitCounter--;   
            
    }while(BitCounter);   
        
    return(temp);   
        
}
 楼主| 栩栩如生 发表于 2012-9-15 19:26 | 显示全部楼层
多谢楼上几位
hawksabre 发表于 2012-9-15 19:58 | 显示全部楼层
_NOP实际就是延时   相当于一段很短的时间      NOP  =  no  operation   自己试一下
sqcumt123 发表于 2012-9-18 22:14 | 显示全部楼层
起到延长时间的作用
tianm 发表于 2012-9-19 11:20 | 显示全部楼层
很短时间的延时 配合操作完成
realzzc 发表于 2012-9-19 11:33 | 显示全部楼层
延时。。
wjzx111056 发表于 2012-9-20 19:53 | 显示全部楼层
NOP是个空操作指令。实际上是起到延缓程序执行周期的一种手段。以S7-300为例,一个NOP指令STL的执行时间大约为0.37us,其一般多在跳转指令后使用。当程序执行到你设置的跳转指令后(满足跳转条件,跳过你不想执行的一段程序)跳转到你写的一段程序,用到NOP指令,程序不执行任何操作,而后在此继续执行程序扫描。
gaochy1126 发表于 2012-9-20 23:40 | 显示全部楼层
_nop_ ();   
            
就这样使用就可以了!
shenmulzb1985 发表于 2012-9-21 11:53 | 显示全部楼层
延时用的,楼上说的很好了,我也没撒可补充的了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

310

主题

2657

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部