新聞中心

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

        IAR For AVR 精確延時

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

        實現的方法:

        本文引用地址:http://www.104case.com/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精確延

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 城市| 襄垣县| 湘西| 余江县| 双柏县| 道真| 高陵县| 青州市| 宁城县| 抚宁县| 安阳县| 平昌县| 云龙县| 敦煌市| 凤山市| 定结县| 马尔康县| 德昌县| 贵州省| 麻江县| 洪湖市| 桐庐县| 新昌县| 铜山县| 临猗县| 敖汉旗| 都江堰市| 封开县| 嘉善县| 洛隆县| 邵武市| 汉源县| 镇江市| 潮州市| 沈阳市| 巫溪县| 开江县| 城固县| 乌拉特中旗| 盐城市| 镶黄旗|