您的位置 首页 国产IC

IAR For AVR 准确延时

C语言中,想使用精确的延时程序并不容易。IAR中有这样的一个函数__delay_cycles(),该函数在头文件intrinsics.h中定义,函数的作用就是…

C语言中,想运用准确的延时程序并不简单。IAR 中有这样的一个函数 __delay_cycles(),该函数在头文件intrinsics.h中界说,函数的效果便是延时N个指令周期。依据这个函数就可以完成准确的延时函数了(但不能做到100%准确度)。

完成的办法:

树立一个delay.h的头文件:

#ifndef __IAR_DELAY_H
#define __IAR_DELAY_H

#include

#defineXTAL8//可界说为你所用的晶振频率(单位Mhz)

#definedelay_us(x)__delay_cycles ( (unsigned long)(x * XTAL))
#definedelay_ms(x)__delay_cycles ( (unsigned long)(x * XTAL*1000) )
#definedelay_s(x)__delay_cycles ( (unsigned long)(x * XTAL*1000000) )

#endif

留意: __delay_cycles(x),x有必要是常量或则是常量表达式,如果是变量则编译报错!

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/252153.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部