變數的位遮蔽

2021-07-30 06:53:14 字數 642 閱讀 2809

位的清除在嵌入式領域至關重要,配置暫存器的某些位相當方便

c++語言實現

#include 

#define bit_mask(bit_pos) ( 0x1 <<( bit_pos ) )

int bit_clear(unsigned

int *val,unsigned

char pos);

int main(void)

int bit_clear(unsigned

int *val,unsigned

char pos)

結果是:

ffff_ffef

值得注意的是:

暫存器的位序號是從0開始計數的。從右到左 :0 、1 、 2 、 3 、 4 ……遮蔽序號pos = 4 是 意味著 遮蔽第五位 。

遮蔽電感和非遮蔽電感的區別?

這個答案好像是謎底就在謎面上。下面兩篇文章說的太繞口,好聽點是專業。重點 遮蔽電感產生的不穩定射頻訊號,隔離。缺點 貴。1.電感是衡量線圈產生電磁感應能力的物理量。給乙個線圈通入電流,線圈周圍就會產生磁場,線圈就有磁通量通過。通入線圈的電源越大,磁場就越強,通過線圈的磁通量就越大。實驗證明,通過線圈...

實現位變數反轉功能

在51微控制器中有個特殊的變數 sbit 位變數 用它做乙個變數反轉是很簡單的,nuber nuber就實現了。為什麼需要這個功能呢?下面看乙個程式 假設 led是乙個燈,led 1為亮,led 0為滅。那麼我想要他200毫秒閃爍,while 1 這是51微控制器的寫法。在c語言中這樣是不可取的,因...

結構體的位域 變數 冒號

先看例子 1 typedef struct test a的長度為4bits,是uint型的,如果test.a 16,由於超過範圍,所以溢位,a 0 偏移量為0 0的意思是補齊,就是第乙個4位元組的只使用了前面四位,後面的全部補0 b 1佔1bits,c 7佔7bits,他們的型別一樣以可以合併乙個位...