[AVR单片机] 用C在IAR AVR中如何实现精确延时

[复制链接]
 楼主| zhilikeji 发表于 2008-5-12 10:10 | 显示全部楼层 |阅读模式
    在那个什么软件里有这样的delay_us(i);delay_ms(i);之类的,请教高手,如何在IAR AVR中实现上述的函数呀?
一级菜鸟 发表于 2008-5-12 10:18 | 显示全部楼层

用定时器咯

 楼主| zhilikeji 发表于 2008-5-12 10:47 | 显示全部楼层

不是用定时器,就用nop这样的语句

现在就想把一个函数把nop语句组成稍有点准的延时函数
mxh0506 发表于 2008-5-12 12:58 | 显示全部楼层

最好用定时器

用NOP延时会受中断影响
 楼主| zhilikeji 发表于 2008-5-12 13:29 | 显示全部楼层

我会关中断的.怎么就弄成delay_us(1)

我会关中断的.怎么就弄成delay_us(1)就是扬时1us
dai_weis 发表于 2008-5-12 20:48 | 显示全部楼层

根据汇编代码计算了

或者使用仿真器计时间看看,本来软件延时就不是精确的,仅仅用来估算而已
ATmega32l 发表于 2008-5-12 22:28 | 显示全部楼层

__delay_cycles()

__delay_cycles()
宇宙飞船 发表于 2008-5-13 10:23 | 显示全部楼层

自已写一个,在模以器里或示波器里调一下,

俺懒得去查C编译器提供的。
宇宙飞船 发表于 2008-5-13 10:25 | 显示全部楼层

俺不用IAR

 楼主| zhilikeji 发表于 2008-5-14 11:21 | 显示全部楼层

噢,楼上高手,你是用GCC的对吗?

哈哈,俺是刚入门的.觉得GCC设置好烦噢.
宇宙飞船 发表于 2008-5-14 11:39 | 显示全部楼层

写一个批文件不就得了!

比ICC和IAR的设定还简单!超灵活,爱干啥就干啥。
shiyang800 发表于 2008-5-20 20:05 | 显示全部楼层

GCC提供的软件延时库做uS级短延时超准!建议使用使用!

ATmega32l 发表于 2008-5-21 08:23 | 显示全部楼层

IAR精确到一个时钟周期

IAR精确到一个时钟周期
ayb_ice 发表于 2008-5-21 08:54 | 显示全部楼层

IAR 430中有__delay_cycles()内嵌函数

AVR应该也有,自己去看一下头文件
tsb0574 发表于 2008-6-4 21:37 | 显示全部楼层

定义好晶振,然后用__delay_cycles()。能精确到一个机器周期!

chengyabcd 发表于 2008-6-24 15:42 | 显示全部楼层

delay_cycles

_delay_cycles();好
匠人老板 发表于 2008-6-30 11:21 | 显示全部楼层

这个论坛,飞船不起飞就太冷轻了.

您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

30

帖子

0

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