两个端口数据的串联

发布于 2024-12-23 03:27:11 字数 226 浏览 1 评论 0原文

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

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

,我现在想做的是从端口 A 读取所有 6 位并将它们与 C 的前两位连接起来,以便将结果存储在包含 8 位的字符 我怎样才能进行这样的串联?

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

I'm using pic18f4550 in which the size of it's port are 6 bits

I want to read and write a data of 8 bit.
what I did is writing data on (let say) port A and port C

what I want to do now, is to read all the 6 bits form port A and concatenate them with the first two bits of C in order to store the result in character which holds 8 bit
How can I do such concatenation?

in other words I want to do this char a = PortA from(0-5) + portc from(0:1)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

も星光 2024-12-30 03:27:11

只需将位移位、屏蔽和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

Just shift, mask and OR the bits together, e.g.

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文