嵌入式开发入门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.

    • ​取反操作( ~ ):

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值