MSP430精確延時_delay_cycles(轉)


 

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個時鍾周期. 

 

只能是常數,因為編譯器會重新編譯為匯編代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM