type c pin定义_在C中定义宏以设置和清除PIN的位
type c pin定義
Given a PIN (value in HEX) and bit number, we have to SET and then CLEAR given bit of the PIN (val) by using Macros.
給定一個(gè)PIN(十六進(jìn)制值)和位數(shù),我們必須使用宏將SET(設(shè)置),然后清除給定的PIN(值)位(值)。
Macros definitions:
宏定義:
#define SET(PIN,N) (PIN |= (1<<N))#define CLR(PIN,N) (PIN &= ~(1<<N))Here,
這里,
SET and CLR are the Macro names
SET和CLR是宏名稱
PIN is the value whose bit to set or/and clear
PIN是要設(shè)置或清除的位的值
N is the bit number to set or/and clear
N是要設(shè)置或清除的位數(shù)
Example:
例:
#include <stdio.h>#define SET(PIN,N) (PIN |= (1<<N)) #define CLR(PIN,N) (PIN &= ~(1<<N))int main(){unsigned char val = 0x11;unsigned char bit = 2;printf("val = %X\n",val);//set bit 2 of valSET(val,bit);printf("Aftre setting bit %d, val = %X\n", bit, val);//clear bit 2 of valCLR(val,bit);printf("Aftre clearing bit %d, val = %X\n", bit, val); return 0; }Output
輸出量
val = 11Aftre setting bit 2, val = 15Aftre clearing bit 2, val = 11Explanation:
說明:
Initially val is 0x11, its binary value is "0001 0001".
最初val為0x11 ,其二進(jìn)制值為“ 0001 0001” 。
In the example, we are setting and clear bit 2 (please note start counting bits from 0 i.e. first bit is 0, second bit is 1 and third bit is 2).
在該示例中,我們正在設(shè)置并清除位2(請注意從0開始計(jì)數(shù)位,即第一位為0,第二位為1,第三位為2)。
After calling Macro SET(val,bit), the bit number 2 (i.e. third bit) will be set/hight and the value of val will be "0001 0101" that will be 0x15 in Hexadecimal.
調(diào)用Macro SET(val,bit)后 ,將設(shè)置2位(即第三位)/高,并且val的值將為“ 0001 0101” ,十六進(jìn)制為0x15 。
And then, we are calling CLR(val,bit), after calling this Macro, the bit number 2 (i.e. third bit) will be cleared and the value of val will be "0001 0001" again, that is 0x11 in Hexadecimal.
然后,我們調(diào)用CLR(val,bit) ,在調(diào)用此宏后,將清除位數(shù)2(即第三位),并且val的值將再次為“ 0001 0001” ,即十六進(jìn)制為0x11 。
翻譯自: https://www.includehelp.com/c-programs/define-macros-to-set-and-clear-bit-of-a-pin-in-c.aspx
type c pin定義
總結(jié)
以上是生活随笔為你收集整理的type c pin定义_在C中定义宏以设置和清除PIN的位的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用JavaScript删除CSS属
- 下一篇: Java BigDecimal toBi