嵌入式開發入門1----位操作

  1. 位操作符在嵌入式開發中最爲常用,如通過位運算符進行運算操作、對寄存器中進行操作。
  2. 六種常用的位操作符:位與( & );位或( | );位異或( ^ );左移操作符( << );右移操作符( >> );求反( ~ )。
  3. 舉例:

    • 位與(&):基本用途用於清除某個位或某些位 

      1
      2
      3
      //清除LCD控制寄存器的最低位來關閉LCD
      #define LCDCON (*(volatile unsigned *)0x1f000000)
      LCDCON &=oxfffffffe

       

    • 位或(|):基本用途爲用於設置某個位或某些位

      1
      2
      //設置LCD控制寄存器的最低位來打開LCD
      LCDCON |=0X1;

       

    • 位異或(^ ):基本用途 把兩個操作數中對應位的值相異的位置一。(規則:相同置0,不同置1)

    • 左移操作( << ):操作數左移n位,左邊移出的位被遺棄,右邊空出的位補0。可用來設置寄存器的值,或者用於乘法運算。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      //通過移位操作設置主頻
      void setPllValue(int mdiv,int pdiv,int sdiv){
        PLLCON=(midv<<12)|(pdiv<<4)|sdiv;       
      }
        
      結果爲:
      PLLCON[19 : 12]=M_DIV
      PLLCON[9 : 4]=P_DIV
      PLLCON[1 : 0]=S_DIV

       

    • 右移操作符( >> ):操作數右移N位,對於無符號數,右邊移出位捨棄,左邊空出位補0;對於有符號數,右邊移出位捨棄,左邊空出位補1.

    • ​取反操作( ~ ):

 

發佈了30 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章