MSP430头文件问题

化蝶为蛹10:36:50#defineP1IN_(0x0020)/*Port1Input*/READ_ONLYDEFC(P1IN,P1IN_)其中,#defineDEFC... 化蝶为蛹 10:36:50
#define P1IN_ (0x0020) /* Port 1 Input */
READ_ONLY DEFC( P1IN , P1IN_)
其中,
#define DEFC(name, address) __no_init volatile unsigned char name @ address;

#define READ_ONLY const
问题1是:P1IN是地址0x0020的一个指针呢?并且这个指针放在了ROM中,不会被优化,不会初始化。
问题2是:C430中的取地址符号是 @ 对吗?C中的取地址符号是 & 。@和&用法一样对吗?
展开
 我来答
津卫天海
2012-12-06 · TA获得超过191个赞
知道小有建树答主
回答量:72
采纳率:0%
帮助的人:82.3万
展开全部
P1IN 是一个寄存器映射,可以当做变量来用,不是指针,(0x0020)就是寄存器地址

@符号就是at,表示将变量定位在指定的地址上,只能在变量声明的时候使用
&是取址符,表示取出变量的地址,目的就是获取变量地址
两个符号是完全不一样的东西.
另外430使用的就是标准C,C的东西都可以用的.
追问
那请问是不是__no_init volatile unsigned char name @ address的意味有点类似与sfrb(或者sfrw)的用法呢?
905893061 希望能认识您!
追答
意思是一样的
这两个更接近于汇编的用法,新的版本中已经不太使用了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式