OpenEdv-开源电子网

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

想定义个变量 可以单个bit访问,怎么实现?

[复制链接]

5

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2012-7-16
在线时间
0 小时
发表于 2012-7-18 18:16:31 | 显示全部楼层 |阅读模式
以前8位机这么定义的        
现在咋定义?

 typedef struct {
    unsigned int b15:1;
    unsigned int b14:1;
    unsigned int b13:1;
    unsigned int b12:1;
    unsigned int b11:1;
    unsigned int b10:1;
    unsigned int b9:1;
    unsigned int b8:1;
    unsigned int b7:1;
    unsigned int b6:1;
    unsigned int b5:1;
    unsigned int b4:1;
    unsigned int b3:1;
    unsigned int b2:1;
    unsigned int b1:1;
    unsigned int b0:1;
} WORD_FIELD;
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2012-7-16
在线时间
0 小时
 楼主| 发表于 2012-7-18 18:17:17 | 显示全部楼层
typedef union {
    unsigned int    word;
    unsigned char   byte[2];
    WORD_FIELD      bit;
} TYPE_WORD;
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-7-18 18:38:45 | 显示全部楼层
可以采用CORTEXM3的位带操作.
不过觉得没必要,习惯与或了...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2012-7-16
在线时间
0 小时
 楼主| 发表于 2012-7-19 10:38:33 | 显示全部楼层
请问CORTEXM3的位带操作. 
        相关文件夹是那个?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2196
金钱
2196
注册时间
2012-2-8
在线时间
35 小时
发表于 2012-7-19 12:37:25 | 显示全部楼层
如果没有硬件的支持,再怎么定义,也逃脱不了读-修改-写的事实。

利用 CM3 的位带是一个不错的选择。
https://github.com/roxma
回复 支持 反对

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2196
金钱
2196
注册时间
2012-2-8
在线时间
35 小时
发表于 2012-7-19 12:42:15 | 显示全部楼层
读-修改-写 这种操作机制会带来很多隐患,特别是在多线程的时候,发生的机率小,这一类BUG是特别难找的,往往又能带来严重的后果,使用原则就是尽量不要在多个线程之间用读-修改-写去访问同一寄存器或全局变量。
https://github.com/roxma
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-26 18:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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