新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > IAR For AVR 精確延時

IAR For AVR 精確延時

作者: 時間:2016-12-03 來源:網絡 收藏
C語言中,想使用精確的延時程序并不容易。IAR 中有這樣的一個函數 __delay_cycles(),該函數在頭文件intrinsics.h中定義,函數的作用就是延時N個指令周期。根據這個函數就可以實現(xiàn)精確的延時函數了(但不能做到100%精確度)。

實現(xiàn)的方法:

本文引用地址:http://m.butianyuan.cn/article/201612/325109.htm

建立一個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必須是常量或則是常量表達式,如果是變量則編譯報錯!



關鍵詞: IARAVR精確延

評論


技術專區(qū)

關閉