1樓:匿名使用者
看看標頭檔案#include 中有定義
#define pb7 7
bit(7)等於1<<7
所以這句就是portb=portb|bit(7); 得到的就是portb的第7位置位
請問:avr c語言中,portb = (1<
2樓:匿名使用者
(1<表示1向左移動pb7位,此處的pb7表示乙個數字,他和pd7、pc7等均表示7,
portb = (1<,表示把1左移7位再賦給portb,即為把pb7這個引腳給高電平,這種語句常用來給單個引腳賦值
portb = (1< 3樓:匿名使用者 意思是portb口的7/6/1/0置高電平。1< 4樓:匿名使用者 就是將portb7設定為高電平,其它口為低電平 1< 在avr裡面portb = (1< 5樓:匿名使用者 是的,只不過前面人家那樣寫更直觀,一下就看出來那個位置為1了 在avr中 bit是如何用的 有什麼特點啊? 6樓:匿名使用者 在學習avr中常常發現有如類似portn&=~bit(pbn)給某位置高或底的語句,那麼它是如何實現的呢?首先我們可以看看bit在icc編譯器中是如何定義的,標頭檔案 中關於bit的定義如下, #ifndef bit #define bit(x) (1 << (x))#endif 大家看到後便一目了然了,舉個簡單的例子,如portb&=~bit(0x01)時,是對pinb2置低 電平。執行該語句時,首先將0x01左移一位變為0x02,之後 取反後變為0xfd在和portb暫存器原來的值相與在賦給portb,這樣就保證對某位置低電位的操作 7樓:匿名使用者 2l複製答案,無恥!! 請教一下avr微控制器中有一段程式是portb&=bit(2);其中bit(2)是什麼意思? 8樓:匿名使用者 bit(2)意思就是「 1<<2 」原來是0b00000001,現在是0b00000100 而portb&=bit(2);就是 portb=portb&(0b00000100) 按位與 就是portb暫存器內對應0b00000100中1的那位的值保留,剩下全部清零,說的夠詳細的了吧 呵呵 9樓:俠影如風 表示 第二位 你可以看一下bit的定義 就知道了 你這裡就表示 portb的第二位 (portb一共是8位) 10樓:匿名使用者 bit(2)就是0x04, bit(3)就是0x08, bit(4)就是0x10, 如何用c語言操縱avr的io埠 11樓:匿名使用者 如何用c語言操縱avr的io埠(以iccavr為例): 舉例一:將pb0定義為輸出,且輸出為高電平 ddrb=bit(0); //定義 pb0為輸出 portb|=bit(0); // pb0 輸出高電平 舉例二:將pb0、pb1定義為輸出,且pb0輸出低電平,pb1均為高電平 ddrb|=bit(0)|bit(1); //定義 pb0、pb1為輸出 portb|=bit(0)|bit(1);// pb0、pb1 輸出高電平 舉例三:將pb0資料暫存器的數值翻轉,即如果是1時變成0,如果是0時變成1 portb^=bit(0); // pb0 輸出高電平 舉例四:將pb0、pb1資料暫存器的數值翻轉,即如果是1時變成0,如果是0時變成1 portb^=bit(0)|bit(1); // pb0 輸出高電平 舉例五:將pb2、pb3定義為輸入,不帶上拉電阻 ddrb&=~(bit(2)|bit(3)); //定義 pb2、pb3為輸入 portb&=~(bit(2)|bit(3)); // 將 port 置0,沒有上拉電阻 舉例六:將pb2、pb3定義為輸入,帶上拉電阻。即沒有引用這些引腳時,預設值為高電平 sfior&=~bit(pud); // sfior暫存器的上拉電阻控制位pud置0,在整個**中,這句話可以不出現,或僅出現一次即可。因為它是乙個控制全部上拉電阻的控制位。 ddrb&=~(bit(2)|bit(3)); //定義 pb2、pb3為輸入 portb|=bit(2)|bit(3); // 將 port 置1,滿足上拉電阻的另乙個條件 舉例七:ddrb=bit(0)|bit(1) 與 ddrb|=bit(0)|bit(1) 的區別 假定在執行上面兩句指令前,ddrb 的狀態為: 1000 0000 如果執行 ddrb="bit"(0)|bit(1) ,ddrb的狀態變為: 0000 0011 如果執行 ddrd|=bit(0)|bit(1),,ddrb的狀態變為: 1000 0011 那前一句會先清空以前的所有狀態,後一句保留前面的狀態。 在實際應用中,後一句更常用。 舉例八:將第三位置1,除了用bit(3),還有其它的表達方法嗎? ddrb|=bit(3); ddrb|=1<<3; ddrb|=0x08; ddrb|=0b00001000; #define led_set portd |= (1 << pd5) //位置高 #define led_clr portd &= ~(1 << pd5) //位置低 #define led_*** portd ^= (1 << pd5) //位取反 #define led_r pind & (1 << pd5) //位讀取 通過上面的定義就可以在程式中直接操作i/o了。 第乙個錯誤是 預編譯定義 defineca應該放在函式的外面,而且是程式檔案的開頭,而你把它放在函式內部了 第二個錯誤是 定義陣列 ints c 時,陣列長度必需用常量,在這裡,c雖然貌似是個常量,但先不說c本身的定義是錯的,而它所代表的卻是a,而a是變數,所以是錯誤。改正之後的結果應該是 incl... 這裡的 string 有 二 義性。1 如果 string 是普通詞彙,c語言中有字元型別變數嗎 答,有。字元型別 用 char 宣告。char str this is a string 2 如果 string 是專用詞彙,c語言中有string型別變數嗎 答,沒有。string 是 類,是 cla... 這個語句是錯的,如果是位址符,不可以求常量的位址 如果是 與操作符或者位與運算子,應該需要兩個引數 c語言中7 15等於多少 是邏輯運算子 在c語言中,非0表示邏輯真 所以,7 15的結果是,邏輯真,用1表示.因此,結果是1.1。7不等於0,短路。貌似邏輯判斷吧,等於1 c語言中0 7 7等於多少?...c語言中有關區域性常量的定義,C語言中是如何定義常量的啊
c語言中有string型別變數嗎
c語言中7的值是多少,c語言中715等於多少