怎么给宏赋值

[复制链接]
4739|12
 楼主| daoyuan345610 发表于 2011-10-20 13:32 | 显示全部楼层 |阅读模式
现有一个宏地址  #define  PL_COUNT  (0x12)        现我要给寄存器PL_COUNT赋值,比如赋值0x14~~         应该怎么做,我是用C语言写C8051340这个芯片
yewuyi 发表于 2011-10-20 13:34 | 显示全部楼层
在此, PL_COUNT不是一个变量,而是一个常量,即(0x12)
 楼主| daoyuan345610 发表于 2011-10-20 13:35 | 显示全部楼层
PL_COUNT是一个寄存器~~    我知道这个寄存器位置,那我现在应该怎么给他赋值
ayb_ice 发表于 2011-10-20 13:37 | 显示全部楼层
不知道LZ是否想要的是这个
#define mequ(x)  PL_COUNT = (x)

mequ(0x14); // PL_COUNT = 0x14
 楼主| daoyuan345610 发表于 2011-10-20 13:44 | 显示全部楼层
我现在在C8051来检测振动传感器~~    我知道它的产生中断的寄存器PL_COUNT及它的地址0x12,那么我现在应该怎样写寄存器PL_COUNT的值
 楼主| daoyuan345610 发表于 2011-10-20 13:45 | 显示全部楼层
4# ayb_ice
应该不是吧,我需要给寄存器赋值~~我直接这样赋值  PL_COUNT=0X14  ,但是提示错误
电子write_cai 发表于 2011-10-20 13:56 | 显示全部楼层
把程序贴出来,你这样赋值没问题的。 6# daoyuan345610
dong_abc 发表于 2011-10-20 14:02 | 显示全部楼层
本帖最后由 dong_abc 于 2011-10-20 14:04 编辑

估计是这样的,楼主缺了个东西。
sfr PL  = 0x10;
#define  PL_COUNT  (0x12)
那么可以 PL_COUNT  =  0x14;



或者*(unsigned char *)PL_COUNT = 0x14;   

不猜了~~~
ayb_ice 发表于 2011-10-20 14:25 | 显示全部楼层
4# ayb_ice  
应该不是吧,我需要给寄存器赋值~~我直接这样赋值  PL_COUNT=0X14  ,但是提示错误
daoyuan345610 发表于 2011-10-20 13:45

看来基本是菜鸟
把相应的头文件加入即可

PL_COUNT=0X14
 楼主| daoyuan345610 发表于 2011-10-20 14:42 | 显示全部楼层
我是菜鸟~~我搞错了,不好意思i,我是用MCU的2个引脚模拟I2C,  所以外设的传感器~的寄存器的值应该是通过,I2C来传送!      感谢各位
 楼主| daoyuan345610 发表于 2011-10-20 14:53 | 显示全部楼层
我想问下在I2C中传送中有个重新开始状态~~,这个操作和I2C的开始状态有区别吗
ychw1986 发表于 2011-10-20 14:59 | 显示全部楼层
本帖最后由 ychw1986 于 2011-10-20 15:07 编辑

看明白了 ,楼主是要给0x12的地址赋值为0x14

#define PL_COUNT (*(unsigned char *)0x12)
PL_COUNT = 0X14;
包含头文件即可
电子write_cai 发表于 2011-10-20 21:14 | 显示全部楼层
我想问下在I2C中传送中有个重新开始状态~~,这个操作和I2C的开始状态有区别吗
daoyuan345610 发表于 2011-10-20 14:53
这个你看协议啊. 起始信号和结束信号,两个连续的起始信号也没事。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

53

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部