这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 介绍一种特别的宏用法,方便修改IO口状态

共27条 1/3 1 2 3 跳转至

介绍一种特别的宏用法,方便修改IO口状态

高工
2012-12-18 21:34:25     打赏
这里有个特别的宏用法,把这句话加到你程序的第一行即可:
#define BinToHex(n) (((n>>21)&0x80)|((n>>18)&0x40)|((n>>15)&0x20)|((n>>12)&0x10)|((n>>9)&0x08)|((n>>6)&0x04)|((n>>3)&0x02)|((n)&0x01))//请把这条宏语句写在同一行。
#define B(n) BinToHex(0x##n##)
举个例子:
原本给单片机IO赋值的语句“P0=0x37;”我们现在可以写成“P0=B(00110011);”这样很大程度上方便了我们修改IO口的状态。
今天编了个小程序测试过了,挺好用的,推荐大家使用该方法

说的明白点就是把那两条宏语句放在程序的开头,这样给单片机端口赋值的时候(因为给端口赋值往往是想给某一位赋值,用二进制的方式赋值比较直观)就不需要再自己换算成16进制的数字了,直接用B(01010011)这样的二进制代替,既比较直观方便又省去了自己换算16进制的麻烦




关键词: 介绍     一种     别的     用法     方便     修改     状态    

高工
2012-12-18 22:10:26     打赏
2楼
第一次见,挺新鲜的,哈哈哈

高工
2012-12-19 08:28:09     打赏
3楼
我也第一次见到,挺新鲜的,不过这样用确实比较方便,建议大家试试

院士
2012-12-19 09:23:50     打赏
4楼
楼主再仔细说说

高工
2012-12-19 09:47:21     打赏
5楼

就是把那两条宏语句放在程序的开头,这样给单片机端口赋值的时候(因为给端口赋值往往是想给某一位赋值)就不需要再自己换算成16进制的数字了,直接用B(01010011)这样的二进制代替,省了不少事儿


高工
2012-12-19 13:32:07     打赏
6楼
又增加了点说明,王总有空瞧瞧

助工
2012-12-19 19:38:52     打赏
7楼
学习!!!

高工
2012-12-20 13:35:14     打赏
8楼
这个是keil编译器所支持的一种伪代码,形式,换到其他编译器可不一定得行,所以不具备通用性,可移植性差~!

高工
2012-12-20 14:49:59     打赏
9楼
哦,还真不知道,反正在keil里面很好用

高工
2012-12-20 15:19:03     打赏
10楼
标标准准的c语言啊~~!

共27条 1/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]