久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11903|回復: 0
收起左側

IAR_msp430 自帶的延時函數

[復制鏈接]
ID:113276 發表于 2016-4-10 21:32 | 顯示全部樓層 |閱讀模式
(1)__delay_cycles()是IAR_msp430 自帶的延時函數,目的是為了精確的延時。使用可以如下編寫程序:
-------------------------------------------------------------------------
#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))
--------------------------------------------------------------------------
其中,CPU_F代表了CPU晶振,這里是8Mhz。

(2)__delay_cycles(time)編譯出錯
但是再使用這個函數是,time如果不是一個立即數,而是一個變量時候,如下:
-------------------------------------------
unsigned char time = 100;
delay_ms(time);
-------------------------------------------
會出現如下編譯報告:
------------------------------------------------------------
Error[Ta003]: Intrinsic function parameter must be literal
------------------------------------------------------------
這是因為這個固有函數是為了精確延時,是不能賦值為變量的,如果是變量的話編譯時候再加上編譯器的匯編命令就不能精確延時了。所以為了這個目的,必須只能是賦值為立即數。
(3)如何寫自己的精確延時函數
為了比較精確的延時,用固有函數還是比較好的選擇,我們為了避免編譯出錯。可以通過一個循環把固有延時命令“套進去”,如下:
-------------------------------------
void Delay_1ms(int nr){
    for(short i=0;i
       delay_ms(1);
    }
}
-------------------------------------
此時就可以通過編譯,使用變量nr來延時自己需要的時間了。

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品99久久久久久久久久久久 | 亚洲乱码国产乱码精品精软件 | 伊人久久精品 | 中文在线字幕免费观看 | 中文字幕手机在线观看 | 欧洲精品一区二区 | 激情91| 久久久久国产一区二区三区 | 久久精品欧美一区 | 九色在线视频 | 全部免费毛片在线播放高潮 | 在线不卡一区 | 黄色毛毛片 | av免费网| 免费av在线| 成人免费视屏 | 国产高清免费 | 欧美亚洲国产日韩 | 国产三级视频 | 亚洲成人免费在线 | 免费在线成人网 | 在线免费观看黄 | 欧美日韩中文字幕在线观看 | 色综合视频在线观看 | 麻豆一区二区 | 欧美一区二区免费 | 一区二区精品视频 | 欧美一级淫片bbb一84 | 午夜天堂av | av免费网站 | 国产成人免费视频 | 国内外成人免费视频 | 黄色三级免费 | www.四虎影视 | 日韩免费视频一区二区 | 毛片视频免费观看 | 亚洲第一天堂网 | 伊人超碰在线 | 久久一区二区视频 | 久久久久国产视频 | 日本青青草 |