I/O口

xingyuezhaoyang   2010-6-11 13:02 楼主
#define  low_data    P2^0|P2^1<<1|P2^2<<2|P2^3<<3|P2^4<<4|P2^5<<5|P2^6<<6|P2^7<<7

请问low_data 与 P2 有什么区别?

回复评论 (42)

这句话的意思是,当你在程序中出现low_data时,将用P2^0|P2^1<<1|P2^2<<2|P2^3<<3|P2^4<<4|P2^5<<5|P2^6<<6|P2^7<<7
替换掉。。。
点赞  2010-6-11 13:03
引用: 引用 1 楼 jbb0523 的回复:

这句话的意思是,当你在程序中出现low_data时,将用P2^0|P2^1<<1|P2^2<<2|P2^3<<3|P2^4<<4|P2^5<<5|P2^6<<6|P2^7<<7
替换掉。。。

注意看题目
点赞  2010-6-11 13:07
不懂,up
点赞  2010-6-11 13:14
mark
点赞  2010-6-11 13:17
Bit in illegal memory-space:
Definitions of bit scalars may contain the optional memory type data. If the memory type is missing then the type data is assumed, because bits always reside in the internal data memory. This error can occur when an attempt is made to use another data type with a bit scalar definition.
点赞  2010-6-11 13:32
  就没有人知道么?
点赞  2010-6-11 14:14
可能是移植性方面的考虑,有的P2不只8位的话用low_data 就可以代表所有P2的低8位了,猜测而已
点赞  2010-6-11 15:44
ding
点赞  2010-6-11 16:21
不懂,帮顶
点赞  2010-6-11 16:24
mark
点赞  2010-6-11 16:29
LZ你确定这样的定义没有错误么?
点赞  2010-6-11 16:31
在51系统下,P2肯定是8bit。但是low_data 有可能是16bit或者更大。要看你使用的表达式。
点赞  2010-6-11 20:04
low_data 应该等于P2输出的十进制值。二进制的数转换为10进制就是这么换的。个人理解,仅供参考。
点赞  2010-6-11 20:32
单就这行代码来看,low_data和P2是等价的。P2^*是典型的位变量形式(51单片机)
假设P2=0xff
那么 low_data = (1) |(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)
点赞  2010-6-11 21:58
引用: 引用 13 楼 flmyueyang 的回复:

low_data 应该等于P2输出的十进制值。二进制的数转换为10进制就是这么换的。个人理解,仅供参考。

怎么成了十进制转化了呢?
点赞  2010-6-12 11:45
引用: 引用 12 楼 peasant_lee 的回复:

在51系统下,P2肯定是8bit。但是low_data 有可能是16bit或者更大。要看你使用的表达式。

是51系统, 我在前面加一个(uchar)low_data,这样等价了吗?
点赞  2010-6-12 11:46

sbit   b0 =P2^0;
sbit   b1 =P2^1;
sbit   b2 =P2^2;
sbit   b3 =P2^3;
sbit   b4 =P2^4;
sbit   b5 =P2^5;
sbit   b6 =P2^6;
sbit   b7 =P2^7;

typedef union {
        uchar char_p2;
        struct {
        uchar b0         :1;                                       
        uchar b1         :1;                                       
        uchar b2         :1;                                    
        uchar b3         :1;                                    
        uchar b4         :1;                                       
        uchar b5         :1;
        uchar b6         :1;                                       
        uchar b7         :1;   //The high bit.                                      
  } bits;
}P2_correct;


P2_correct    p22;

p22.charar_p2  与 P2, low_data又有什么关系呢?  
点赞  2010-6-12 12:18
mark
点赞  2010-6-12 12:18
  自己顶一个,学过51的来讨论一下啊。
点赞  2010-6-12 16:40
123下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复