C 编译器中带有 pic 18F4550 的 rlcf 指令

发布于 2024-11-08 16:00:22 字数 278 浏览 0 评论 0原文

我是使用 Microchip 的 PIC 18F4550 的 C 编译器进行硬件编程的新手。

我的问题是,有人可以给我一个例子'如何旋转位并获取添加的进位,使用这条指令'rlcf'(c编译器)

这条指令将位向左移动并将最左边的位放在进位中,你应该从进位读回这个值。

我知道它是如何运作的。但在我的编码方式中找不到任何示例代码来运行它。

这就是我收到的数据输入。必须将其转换为二进制值,然后进行旋转。 无符号整型红色 = 1206420333240;

提前致谢!

I'm new at hardware programming with c compiler for the PIC 18F4550 from Microchip.

My question is, can someone give me an example 'how to rotate bits and get the carry that is added, with this instruction 'rlcf' (c compiler)

This instruction shifts the bits to the left and places the leftmost bit in a Carry and you should read back this value from the carry.

I know how it works. But can not find any example code to run it on my way to code.

That's the data input i receive. It must be converted into binary values, and than rotate it.
unsigned int red = 1206420333240;

Thanks in advance!

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

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

发布评论

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

评论(1

漆黑的白昼 2024-11-15 16:00:22

您无权访问 C 编译器中的进位位,必须使用汇编来访问它们。

另外,您的值对于 PIC18 上的 unsigned int 来说太大了,PIC18 是一个 16 位数字,十进制最大为 65535,十六进制为 0xFFFF。

在 C 文件中编写汇编的方式因编译器而异。在 Hitech C 中,以下语法是有效的

asm("RLCF REG,0,0");//replace REG with your register and consider the d and a flags.
asm("BC 5"); //branch if carry

,但请注意,这是循环一个字节,而不是一个两字节数字。您需要将两个寄存器的两次循环链接在一起才能循环 16 位数字。

You don't have access to carry bits in a C compiler, you'd have to use assembly to get to them.

Also your value is too big for an unsigned int on a PIC18, which is a 16 bit number with a maximum of 65535 decimal, 0xFFFF hex.

How you write assembly inside a C file varies depending on the compiler. In Hitech C, the following syntax is valid

asm("RLCF REG,0,0");//replace REG with your register and consider the d and a flags.
asm("BC 5"); //branch if carry

But note that is is rotating one byte, not a two byte number. You need to chain together two rotates of two registers to rotate a 16 bit number.

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