OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 15804|回复: 7

如何对寄存器变量进行位操作

[复制链接]

102

主题

318

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1875
金钱
1875
注册时间
2011-12-21
在线时间
545 小时
发表于 2012-3-23 10:47:19 | 显示全部楼层 |阅读模式
RT,一般操作寄存器要计算然后左移右移 赋值,这样好麻烦,大家有没有什么好的方法啊?
如果用struct 把寄存器挨个定义一下会不会太占内存啊? 而且貌似挺麻烦的
大家有没有什么好办法,请不吝赐教
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-3-23 10:52:00 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

102

主题

318

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1875
金钱
1875
注册时间
2011-12-21
在线时间
545 小时
 楼主| 发表于 2012-3-23 10:57:55 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我以前玩过DSP,DSP就是这样定义的,使用起来很方便。只是不知道STM32合适不合适,比如会不会占用太多空间啊、执行效率啊什么的
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-3-23 11:35:59 | 显示全部楼层
试试就知道了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2196
金钱
2196
注册时间
2012-2-8
在线时间
35 小时
发表于 2012-3-23 12:29:51 | 显示全部楼层
呵呵,C语言免不了这些的,除非以后汇编提供了相关的指令,C语言的标准继续扩充...

我以前一般是把移位,位与,位或的操作全部用宏封装起来了,
可以看这个帖子,
http://www.openedv.com/posts/list/3134.htm

因为用宏还是比较麻烦,而且也有点不安全,现在用的是C++,所以全部改成模板来实现了了,用起来还是比较便利的,
可以看这里http://www.openedv.com/posts/list/3210.htm
https://github.com/roxma
回复 支持 反对

使用道具 举报

10

主题

42

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2012-3-14
在线时间
0 小时
发表于 2012-3-23 16:04:10 | 显示全部楼层
推荐我最常用的方法:
对第n位置位:REG|=1<<n;
对第n位清零:REG&=~(1<<n);
我觉得挺方便的。呵呵>
回复 支持 反对

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2196
金钱
2196
注册时间
2012-2-8
在线时间
35 小时
发表于 2012-3-23 16:08:06 | 显示全部楼层
回复【6楼】10086rainer:
---------------------------------
不完全手册里的代码不都是这样用的么。。。
https://github.com/roxma
回复 支持 反对

使用道具 举报

20

主题

562

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
670
金钱
670
注册时间
2012-2-28
在线时间
0 小时
发表于 2012-3-23 16:27:16 | 显示全部楼层
如果用结构体的话,不必定义了,因为库函数中的几乎都是用的结构体,你可以直接使用他的变量定义
努力,前进。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 07:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表