[AVR单片机] AVR执行一条C语句要多长时间

[复制链接]
8933|17
 楼主| czj8127 发表于 2008-8-19 16:56 | 显示全部楼层 |阅读模式
假如晶振采用1M的,AVR执行一条C语句比如
while(1);
要多长时间?怎么计算的?
请大侠指导
xwj 发表于 2008-8-19 17:06 | 显示全部楼层

时间无穷大

huangqi412 发表于 2008-8-19 18:21 | 显示全部楼层

倒塌,执行一条c语言需要多长时间?

国家利益 发表于 2008-8-19 20:16 | 显示全部楼层

__NOP();while(1);

dai_weis 发表于 2008-8-19 20:33 | 显示全部楼层

_NOP();一微秒

while(1);可以一直等N久
turboc 发表于 2008-8-21 23:36 | 显示全部楼层

瀑布汗~~~~

瀑布汗~~~~瀑布汗~~~~瀑布汗~~~~瀑布汗~~~~瀑布汗~~~~瀑布汗~~~~瀑布汗~~~~
while(1);  //这是死循环啊,永远等待。

只有中断才能暂时打断他.
gtw 发表于 2008-8-21 23:41 | 显示全部楼层

比如说

以后的单片机时钟在nGGHz的时候,哈哈
nop的时间更短;
while(1)的时间还是够长
jeoge 发表于 2008-8-24 11:19 | 显示全部楼层

c語言編譯后會變成不同的匯編語言

  c語言編譯后會變成不同的匯編語言,有的十幾條,有的只有一條,所以不能這樣講.
救火车 发表于 2008-8-24 15:48 | 显示全部楼层

要看编译后的汇编是什么样的

yanhc519 发表于 2008-8-24 17:53 | 显示全部楼层

可以这样看

可以这样看:
while(1)
{
PB0 = 0;

PB0 = 1;

}
通过示波器看波形
zusen 发表于 2008-8-27 10:10 | 显示全部楼层

执行一次while(1);

需要一个机器周期
dld2 发表于 2008-8-27 10:16 | 显示全部楼层

呵呵

到断电为止。
 楼主| czj8127 发表于 2008-9-2 17:04 | 显示全部楼层

谢谢各位了 我表达有点错误

我想问的是执行一次while(1);要多长时间。循环一次要多长时间。我想用1MHz做个60us的延时,不知道while(t);中的t该设为几? 
农民讲习所 发表于 2008-9-5 14:24 | 显示全部楼层

现代人都是直接看模拟调试时的时间结果。

jeketl 发表于 2008-9-10 14:35 | 显示全部楼层

做延迟是用for,而不是while

while(t),只要t不等于0就是死循环,如果你是用gcc来开发,可以直接调用_delay_us函数,他会根据晶振频率完成指定的延迟时间。
hotyong 发表于 2008-9-16 14:12 | 显示全部楼层

这也太搞笑了吧!!

highmao 发表于 2008-9-20 23:55 | 显示全部楼层

hahahaha

用for循环做延时,看一下编译完的汇编程序。每条汇编程序占用一个机器周期(一般是)。另外参照16楼
wi2c 发表于 2008-9-22 12:40 | 显示全部楼层

如果这样用有错么

while(i--);
另外一种
while(i--)_NOP();
i赋一个有效值,我用前一种不行程序过不去
可是用第二种就没有问题
因为我要等几个时钟周期才这么做
不解中,用的是WINavr的Gcc编译的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

20

帖子

0

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