AVR单片机asm("nop");什么意思,8M的话多少 时间

 我来答
wooden954
2016-01-28 · TA获得超过1万个赞
知道大有可为答主
回答量:6135
采纳率:93%
帮助的人:830万
展开全部
  AVR单片机中
  asm("nop");
  这条语句,其中asm()的作用是指函数内部的参数翻译为汇编指令,其作用是在C语言环境下直接使用汇编指令执行。
  nop是一个空等待汇编指令,这个指令执行时,单片机是什么也不做的,仅仅起一个时间延时作用。
  对于AVR单片机来与,如果不分频,那么一个振荡周期就是一个指令周期,因此8M晶振时,其一个指令周期时间是1/8000000秒,即125纳秒。
头好舞05
2012-02-15 · TA获得超过2099个赞
知道小有建树答主
回答量:797
采纳率:100%
帮助的人:498万
展开全部
asm("nop");指汇编指令nop,即空操作,其执行时间是一个时钟周期,8M的话就是0.125微秒
追问
2.微秒延时
晶振频率为8MHz时1μs延时函数:
void delay_1us(void)
{
asm("nop");
}
可是我查到的以上代码,说是1us
追答
你那是指调用一个延时函数的时间是1us,具体就nop指令来说就是一个时钟周期,调用函数还得有call(调用函数)和ret(函数返回)等指令,这些指令都要时间来执行的,加起来大概是8个时钟,也就是8M下要延时1us
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hehe2010的家
2015-09-22 · TA获得超过3721个赞
知道小有建树答主
回答量:527
采纳率:94%
帮助的人:41.3万
展开全部
asm("nop")指汇编指令nop,即空操作,其执行时间是一个时钟周期。8M的话就是0.125微秒。有时软件抗干扰时要用到,使跑飞的程序入正轨。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
smart917
2016-01-08
知道答主
回答量:18
采纳率:0%
帮助的人:11.6万
展开全部
asm("nop");这条语句是在C语言环境中执行汇编语句,而nop是汇编当中的空语句。8M是频率,计算成周期值是0.125微秒。AVR指令有单时钟周期,双时钟周期的以及3时钟、4时钟的。nop语句是单指令周期的,就是空等0.125微秒。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tdfzq
2012-02-16 · TA获得超过839个赞
知道小有建树答主
回答量:771
采纳率:75%
帮助的人:201万
展开全部
avr是单周期指令,nop 指令在8M就是0.125us,你的函数是avr的单片机的吗?好多单片机是有分频的,pic的一般4分频,nop指令在8m是0.5us
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式