使用位运算对寄存器操作的通用方法
来源:互联网 发布:淘宝卖家如何备注订单 编辑:程序博客网 时间:2024/05/21 15:45
对寄存器的操作有时候要考虑对其不同的位进行先后顺序不同的设置,但是对寄存器操作的方法是固定的。
首先要明白逻辑运算符(!,&&,||)和位运算符(<<,>>,~,|,^,&)的区别:
对寄存器的操作使用的是位运算符,
逻辑运算符一般用于在程序中判断逻辑中使用。
例如 定义一个8位的寄存器(0xf0是寄存器的地址): #define REG 0xF0
1)对单个的位进行赋值
(1)将寄存器REG的第5位置“1”: REG |= (1 << 5);
(2)将寄存器REG的第5位清“0”: REG &= ~(1 << 5);
(3)将寄存器REG的第3和第5位置“1”:REG |= (1 << 5) | (1 << 3);
(4)将寄存器REG的第3和第5位清“0”:REG &= ~( (1 << 5) | (1 << 3) );
该段总结如下:
将某位置1,移位后使用位运算"|" ;
将某位清0,移位取反后,使用位运算"&"
2)直接赋值
(1)将寄存器REG的1、2、3、5、7位置“1”
REG = 0x5E; (即给寄存器REG1赋值为1010 1110,这种方法多在初始化中使用)
(2)分别将寄存器REG的1、3、5、7位置“1”;0、2位清“0”
u8 temp;
temp = REG;
temp |= (1 << 1); //将第1位置“1”
temp |= (1 << 3);
temp |= (1 << 5);
temp |= (1 << 7);
temp &= ~(1 << 0) ; //将第0位清“0”,等价于temp &= ~0x01
temp &= ~(1 << 2); //将第2位清“0”
REG = temp;
0 0
- 使用位运算对寄存器操作的通用方法
- 对寄存器操作的通用方法总结
- 对寄存器操作的通用方法总结
- 对寄存器操作的通用方法总结
- 嵌入式开发中用于操作寄存器的位运算
- 嵌入式编程基础----对寄存器的位操作
- 按位操作外部设备的寄存器:方法一
- 按位操作外部设备的寄存器:方法二
- 寄存器操作的方法
- 位操作-在寄存器中的使用
- 位操作的运算
- 误操作寄存器位引发的hardfault
- 16位汇编 寄存器的操作
- 常见面试题:对变量或寄存器进行位操作
- Linux I2C 对16位寄存器地址 进行读写操作
- 寄存器位写操作
- 位运算的使用
- 位运算的使用
- ThinkPHP模型开发之自动完成常见问题
- 第十六周项目1-(8)验证算法基数排序
- html中加载js文件报错:ReferenceError: $ is not defined
- 基础篇:8)产品结构设计理念(启下之章);
- AsyncTask和Handler的优缺点比较
- 使用位运算对寄存器操作的通用方法
- Java中的异常处理
- IntelliJ IDEA 里面 安装 SVN
- 软件测试资料分享,经过认真整理的一套完整教学体系
- 2 tomcat服务器学习与使用(一)
- 常见的几种矩阵分解方式
- 给UITabbarcontroller直接add子viewcontroller
- linux中的ifconfig
- 关于Integer的一个大坑