标题:单片机编程中常用的宏定义的问题(关于##)
只看楼主
hxjhzyf
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-11-17
 问题点数:0 回复次数:2 
单片机编程中常用的宏定义的问题(关于##)
现在我想实现以下功能,请大家集思广益帮忙解决:
现在有若干个外设功能需要配置,首先要为每个功能分配引脚。比如有功能:FC,SC……
分别分配引脚1,2……
本着“大道从简”的思路,想要一个简单的定义方式和调用方式。
我的思路是这样子,首先定义一个#define FC_pin 1 及#define SC_pin 2……
然后,如果FC_pin定义了,那么会自动定义FC功能的寄存器,例如Reg1.GPIO1=x,Reg2.GPIO1=y
比如:
#define FC_pin 1//FC_pin的值可能会变,不一定是1
#ifdef FC_pin
Reg1.GPIO##FC_pin = x;
Reg2.GPIO##FC_pin = y;
#endif
问题一:##只能在宏定义中使用,怎样能够比较简单的调用和实现
问题二:##连接的是两个字符串,而我想吧FC_pin代表的无符号整形数和GPIO连在一起,也就是Reg.GPIO1或Reg.GPIO23这种形式。
问题三:除此而外,就是如果#define FC_pin 1而且#define SC_pin 1两个用了相同的引脚,如何能够提示错误。
希望高手帮忙解答,十分感谢。
搜索更多相关主题的帖子: 单片机编程 寄存器 外设 
2011-11-17 19:49
hxjhzyf
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2011-11-17
得分:0 
怎么没有人解答呢?纯粹的C语言编程问题,难道没有好的解决办法。
2011-11-18 23:47
超级大帅哥
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-2-13
得分:0 
看不懂,晕
2013-02-13 09:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-355525-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.587110 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved