打印
[AVR单片机]

关于avr单片机的延时函数

[复制链接]
7056|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sdu_yqc|  楼主 | 2011-4-9 19:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
cooolsky| | 2011-4-9 19:59 | 只看该作者
跟晶振频率有关..然后keil软件里有模拟的..

使用特权

评论回复
板凳
airwill| | 2011-4-10 16:46 | 只看该作者
在 GCCAVR 的 delay.h 文件中, 讲述了这个问题. 可以先去看一下

使用特权

评论回复
地板
技美电子| | 2011-4-10 18:28 | 只看该作者
IAR里面有个库函数超准的。__delay_cycles(n)

使用特权

评论回复
5
ccxlslr| | 2011-4-12 14:33 | 只看该作者
NB,这都有人研究,中国单片机还是很有前途的

使用特权

评论回复
6
joyme| | 2011-4-19 15:49 | 只看该作者
141还是延时us,谁家的单片机能跑那么快呀?

使用特权

评论回复
7
无赖2033| | 2011-6-6 23:13 | 只看该作者
不是这样的,这跟你的晶振频率有关的,你可以用avrstdio仿真

使用特权

评论回复
8
uabuntsu| | 2011-7-12 22:31 | 只看该作者
本帖最后由 uabuntsu 于 2011-7-30 16:30 编辑

头文件中定义了精确延时了呀。
#include<util/delay.h>

然后就可以使用:
_delay_us(double m)  //微秒级延迟,
_delay_ms(double m)  //毫秒级延迟

使用特权

评论回复
9
hotpower| | 2011-7-13 08:56 | 只看该作者
winavr的软件延时是相当准确的。

使用特权

评论回复
10
jamin.x| | 2011-9-27 18:39 | 只看该作者
和晶振又关系

使用特权

评论回复
11
jamin.x| | 2011-9-27 18:53 | 只看该作者
我用的ATMEGA16L,晶振8mhz,使用外部晶振电路,延时函数如下:
  void Delay_1ms(unsigned int n)
{
      unsigned int i,j;
      for(i=0;i<n;i++)
     {
         for (j=0;j<570;j++);
      }
}

使用特权

评论回复
12
ziyun5| | 2011-10-2 21:10 | 只看该作者
如果你有时间的话,我建议你去看看keil里的文档,绝对对你有帮助

使用特权

评论回复
13
hbsun| | 2011-10-3 16:16 | 只看该作者
用AVR STUDIO看一下反汇编,算出每次循环执行多少条指令以及单,双周期指令云云,然后再根据你的单片机主频可以计算出延时时间,也可以从AVRSTUDIO软件仿真上直接读出来。。。

使用特权

评论回复
14
一颗心的思考| | 2014-10-23 12:48 | 只看该作者
ziyun5 发表于 2011-10-2 21:10
如果你有时间的话,我建议你去看看keil里的文档,绝对对你有帮助

keil?

使用特权

评论回复
15
hillslb| | 2014-11-28 13:09 | 只看该作者
这种延时程序,我觉得还是删掉的好,一般都不会用这种死循环,到ms级,最多就几个us用这个

使用特权

评论回复
16
courage苏| | 2014-12-1 00:43 | 只看该作者
用周期计算,

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

140

帖子

1

粉丝