搜索
bottom↓
12
返回列表 发新帖
楼主: dfgeoff

[转贴]gcc经验点滴(二)---鱼,熊掌.AVR的两种位操作的比较(wjc3k发于21ic)(位域与C位操

[复制链接]

出0入0汤圆

发表于 2009-10-31 08:26:26 | 显示全部楼层
好帖

出0入0汤圆

发表于 2009-10-31 22:26:01 | 显示全部楼层
好东西
Mark

出0入0汤圆

发表于 2009-11-1 13:38:28 | 显示全部楼层
good,mark

出0入0汤圆

发表于 2009-12-6 17:29:20 | 显示全部楼层
人好东西也好,顶!!!

出0入0汤圆

发表于 2009-12-6 19:19:58 | 显示全部楼层
mark

出5入8汤圆

发表于 2009-12-7 12:48:27 | 显示全部楼层
mark!

出0入0汤圆

发表于 2009-12-8 10:39:07 | 显示全部楼层
顶一下!

出0入0汤圆

发表于 2009-12-22 13:26:06 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-1-6 00:09:36 | 显示全部楼层
顶一下!

出0入0汤圆

发表于 2010-1-6 09:13:32 | 显示全部楼层
【16楼】 alexant
注意GET_BITFIELD(&address).bit##b中的address前面的取址符"&",这是唯一与楼主所讲的不一样的地方,大家可以该该再看看
下面是if(dat&0x80)nRF905_MOSI=1;else nRF905_MOSI=0;的汇编代码:
_______________________________________________________________
着实代码效率也很高,是不是lz的定义不够好呢?

出0入0汤圆

发表于 2010-2-4 01:19:02 | 显示全部楼层
cvavr里面直接对位操作是何故?

出0入0汤圆

发表于 2010-2-17 18:07:57 | 显示全部楼层
方法挺多啊,挺好,以前我也一直被bit运算所困惑,不过现在我不了,我觉得我现在用的方法也很好,如下,大家可以看看。

在IAR 4.2 下 包含 iom16.h 库后,其实大家就能用位运算了。 规则如下 : sfr名称.BitN

例如 PORTB2 作为输出: 设置后 DDRB 后 可以这样写 PORTB.Bit2=1;或 PORTB.Bit2=0; 注意大小写
如果要将端口作为输入: 设置后 DDRB 后 可以这样写 N=PINB.Bit2;或 N=PINB.Bit2; 注意大小写

所以我们以后再也不怕位运算了,也无需去自己定义那个结构体和共用体了,方便吧?希望大家支持

出0入0汤圆

发表于 2010-3-2 08:25:20 | 显示全部楼层
不错不错,都是好方法

出0入0汤圆

发表于 2010-5-21 14:41:37 | 显示全部楼层
俺喜欢楼主的这个方法:
2、位移宏方式。主要有三个.
#define Set_Bit(val, bitn)    (val |=(1<<(bitn)))
#define Clr_Bit(val, bitn)     (val&=~(1<<(bitn)))
#define Get_Bit(val, bitn)    (val &(1<<(bitn)) )
顶你

出0入0汤圆

发表于 2010-5-22 21:06:47 | 显示全部楼层
很有学术性质啊

出0入0汤圆

发表于 2010-5-22 21:38:54 | 显示全部楼层
这个位移是我开始接触avr的时候兴起的··还要多多注意用法···

出0入0汤圆

发表于 2010-5-22 22:59:22 | 显示全部楼层
好好学习中

出0入0汤圆

发表于 2010-5-22 23:08:47 | 显示全部楼层
大大大ddddddddd

出0入0汤圆

发表于 2010-5-29 21:53:31 | 显示全部楼层
好好学习了

出0入0汤圆

发表于 2010-9-7 15:03:32 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-9-30 21:22:18 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-11-13 23:58:23 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-13 00:14:09 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-13 09:03:16 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-13 12:59:32 | 显示全部楼层
好贴,标记一下。

出0入0汤圆

发表于 2011-3-24 10:07:20 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-7-6 17:58:41 | 显示全部楼层
谢谢分享!

出0入0汤圆

发表于 2011-11-19 18:54:34 | 显示全部楼层
顶一下

出0入0汤圆

发表于 2011-11-19 20:35:27 | 显示全部楼层
好贴

出0入0汤圆

发表于 2011-12-9 14:36:56 | 显示全部楼层
有空的话,大家可以看看。是好贴

出0入0汤圆

发表于 2012-2-24 10:45:03 | 显示全部楼层
不错

出0入0汤圆

发表于 2012-2-24 11:03:50 | 显示全部楼层

出0入0汤圆

发表于 2012-3-30 12:32:16 | 显示全部楼层

出0入10汤圆

发表于 2012-3-30 13:17:51 | 显示全部楼层
我一直用位域,看来应该改为宏的方式

出0入0汤圆

发表于 2012-7-21 21:47:48 | 显示全部楼层
分享一下我的方法
http://www.amobbs.com/thread-5485656-1-1.html

出0入0汤圆

发表于 2012-7-24 16:56:18 | 显示全部楼层
学习了

出0入0汤圆

发表于 2012-10-26 15:12:23 | 显示全部楼层
刘明马克。

出0入0汤圆

发表于 2014-10-14 18:30:14 | 显示全部楼层
顶啊,要快速不断地顶!!!

出0入0汤圆

发表于 2015-1-5 12:31:14 | 显示全部楼层
好东西,留着有用

出0入0汤圆

发表于 2015-10-8 23:11:54 | 显示全部楼层
这真堪称是avr的位操作终结贴!果断mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 02:32

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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