IO操作常用技巧

     对于做驱动的来说,IO操作,就是家常便饭。如果没有一个良好的技巧,这种针线活可不好做。这里介绍一些常用的技巧函数,也算是一个汇总:

1:BITCSET
#define BITCSET(X, CMASK, SMASK)   

( (X) = ((((unsigned int)(X)) & ~((unsigned int)(CMASK))) | ((unsigned int)(SMASK))) )

//意义:把值X上的CMASK对已的值设置为SMASK的值。一般CMASK的位置和SMASK的位置是一样的,否则很容易引起歧义。

分析: X &~CMASK:得到CMSK位置的位置设置为0。

          | SMASK :把上述结果的SMASK的为一的位置再置为1。

2:BITSCLR
#define BITSCLR(X, SMASK, CMASK)    ( (X) =

((((unsigned int)(X)) | ((unsigned int)(SMASK))) & ~((unsigned int)(CMASK))) )

//意义:把值X上的指定位SMASK清空。一般SMASK和CMASK的位置也是一样的。

3:BITSET

#ifndef BITSET
#define    BITSET(X, MASK)                ( (X) |= (unsigned int)(MASK) )

//意义:把X的指定MASK位标志位1。

 

4:BITCLR

BITCLR
#define    BITCLR(X, MASK)                ( (X) &= ~((unsigned int)(MASK)) )

//意义:把X的指定位置置为0。

 

实际过程中用的最多的还是后面两个,BITSET,BITCLR,前面的只是后面的两种融合,也不建议使用前面的2种,让人理解不是很干脆。后面的两种简单易懂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值