keil 中 標頭檔案 intrins.h的作用 在 c51 微控制器程式設計中,標頭檔案 intrins.h 的函式使用起來,
就會讓你像在用彙編時一樣簡便.
內部函式 描述
_crol_ 字元迴圈左移
_cror_ 字元迴圈右移
_irol_ 整數迴圈左移
_iror_ 整數迴圈右移
_lrol_ 長整數迴圈左移
_lror_ 長整數迴圈右移
_nop_ 空操作 8051 nop 指令
_testbit_ 測試並清零位 8051 jbc 指令
函式名: _crol_, _irol_, _lrol_
原 型: unsigned char _crol_(unsigned char val,unsigned char n);
unsigned int _irol_(unsigned int val,unsigned char n);
unsigned int _lrol_(unsigned int val,unsigned char n);
舉例:_crol_,_cror_:將 char 型變數迴圈向左(右)移動指定位數後返回
_testbit_: 相當於 jbc bitvar 測試該位變數並跳轉同時清除。
_chkfloat_: 測試並返回源點數狀態。
就是彙編中的子函式。
_crol_,_cror_:如果二進位制數為 01010101 那麼_crol_(1) 左移 1 位後將高位補低位。
結果 10101010。
功 能: _crol_, _irol_, _lrol_以位形式將 val 左移 n 位,該函式與 8051「 rla」指令相關,
上面幾個函式不同於引數型別。
例:#include
main()
函式名: _cror_, _iror_, _lror_
原 型: unsigned char _cror_(unsigned char val,unsigned char n);
unsigned int _iror_(unsigned int val,unsigned char n);
unsigned int _lror_(unsigned int val,unsigned char n);
功 能: _cror_, _iror_, _lror_以位形式將 val 右移 n 位,該函式與 8051「 rra」指令相關,
上面幾個函式不同於引數型別。
例:#include
main()
函式名: _nop_
原 型: void _nop_(void);
功 能: _nop_產生乙個 nop 指令,該函式可用作 c 程式的時間比較。 c51 編譯器在_nop_
函式工作期間不產生函式呼叫,即在程式中直接執行了 nop 指令。
例:p()=1;
_nop_();
p()=0;
在 12m 的晶振下每個_nop_()延時 11us,經過適當的調整即可做到精確延時。
函式名: _testbit_
原 型: bit _testbit_(bit x);
功 能: _testbit_產生乙個 jbc 指令,該函式測試乙個位,當置位時返回 1,否則返回 0。如
果該位置為 1,則將該位復位為 0。 8051 的 jbc 指令即用作此目的。 _testbit_只能用於可直
接定址的位;在表示式中使用是不允許的
關於intrins h標頭檔案的介紹
在微控制器中應用最多的當然就是移位函式,利用移位函式可以更簡便的實現流水燈等效果。移位函式 移位函式名 左移 crol 移位物件,位數 右移 cror 移位物件,位數 函式原型 unsigned char crol unsigned char val,unsigned char n unsigned...
c 標頭檔案之Vector Vector的用法
開始學習c 再這個過程中第乙個令人頭疼的地方就是標頭檔案的含義了,c 標頭檔案的內容會隨著我的深入學習進行更新.首先,我們需要該清楚vector的定義 c 標準庫提供了被封裝的動態陣列 vector。大體上講,就是更容易上手的動態陣列.讓我們看看vector的優缺點.優點 1 vector可以存放任...
uefi只有標頭檔案和庫的用法
inf檔案中需要 buildoptions 塊 buildoptions x64 dlink flags libpath workspace testlib library dlink flags efimylib.lib export initializedriver image entry po...