怎么用C语言写ns级的延时程序

已举报 回答
怎么用C语言写ns级的延时程序
问在线客服
扫码问在线客服
  • 回答数

    6

  • 浏览数

    7,743

6个回答 默认排序
  • 默认排序
  • 按时间排序

已采纳
单片机的晶振频率为12Mhz,机器周期就是1us,定时器用的时钟周期就是1MHz,怎么可能实现100ns的延时?
换单片机吧,换用1T的51单片机,速度是普通51的12倍,如果用12M的晶振,机器周期是83ns,也很勉强!
或者就用CPLD、逻辑电路自己搭吧
我很好奇,你做什么需要ns级的延时?
取消 评论
用汇编语言可以吗
取消 评论
用C写延时程序的话不精准?
sleep(Time);
Time 毫秒级

如果在VC 直接用Sleep(Time) API函数
当然不用VC也可以用sleep();不用自己申明的~~
#includeWindows.h

int main(){
Sleep(2000);
return 0;

}
取消 评论
void delay1s(void) //误差 0us
{
unsigned char a,b,c;
for(c=167;c0;c--)
for(b=171;b0;b--)
for(a=16;a0;a--);
_nop_(); //if Keil,require use intrins.h
}
取消 评论
asm( NOP),每个NOP指令空操作一次,即一个CPU指令周期

sleep在系统忙时是不准确的,没有直接汇编的准

可是可以嵌入NOP这样的空指令来延时啊
取消 评论
我认为最好的办法是,用示波器实测,不断的调整,这样才能行,不然,就不好定了。
取消 评论
ZOL问答 > 怎么用C语言写ns级的延时程序

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?