在C编译器中使用pic 18F4550的rlcf指令

时间:2011-05-20 11:58:16

标签: c compiler-construction microcontroller

我是Microchip的PIC 18F4550的c编译器的硬件编程新手。

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

该指令将位向左移位并将最左边的位置于Carry中,您应该从进位读回该值。

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

我收到的数据输入。它必须转换为二进制值,然后旋转它。 unsigned int red = 1206420333240;

提前致谢!

1 个答案:

答案 0 :(得分:4)

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

对于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位数字。