MSP430精確延時_delay_cycles

 IAR 軟件430的編譯器裏面我們可以利用它內部的延時子程序來實現我們想要的高精度軟件延時,方法如下: 

(1):將以下這段代碼複製到你的.C源文件中。 

#define CPU_F                               ((double)8000000) 
#define delay_us(x)                       __delay_cycles((long)(CPU_F*(double)x/1000000.0)) 
#define delay_ms(x)                      __delay_cycles((long)(CPU_F*(double)x/1000.0)) 

(2):修改 

在 #define CPU_F              ((double)8000000) 語句裏 8000000 修改成你當前MSP430 CPU的主頻頻率,即CPU的MCLK。 

單位爲HZ。本例中的8000000爲MCLK=8MHZ 的意思。 

(3):使用範例 

delay_us(1);        //1 微秒的延時 

delay_ms(1);       //1 毫秒的延時 

delay_us(3.5);     //延時3.5微秒 

delay_ms(3.5);    //延時3.5毫秒 

delay_ms(1000); //延時1秒

直接調用,如:__delay_cycles(100),就延時100個時鐘週期. 

 

只能是常數,因爲編譯器會重新編譯爲彙編代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章