两个端口数据之间的连接

时间:2011-12-24 12:23:18

标签: bit-manipulation bitwise-operators pic bits

我正在使用pic18f4550,其端口大小为6位

我想读取和写入8位数据。 我所做的是在(假设)端口A和端口C上写入数据

我现在要做的是从端口A读取所有6位并将它们与C的前两位连接起来,以便将结果存储在保存8位的字符中 我怎么能这样连接?

换句话说我想做这个char a = PortA from(0-5)+ portc from(0:1)?

1 个答案:

答案 0 :(得分:0)

只需移位,屏蔽和OR位,例如

uint8_t a, b;

// ... read data from ports A and B into a, b ...

uint8_t c = (a << 2) | (b & 0x03); // shift a left by 2 bits and
                                   // OR with LS 2 bits of b