我是Microchip的PIC 18F4550的c编译器的硬件编程新手。
我的问题是,有人可以给我一个例子'如何旋转位并获得添加的进位,使用此指令' rlcf' (c编译器)
该指令将位向左移位并将最左边的位置于Carry中,您应该从进位读回该值。
我知道它是如何运作的。但是在我编写代码的路上找不到任何示例代码来运行它。
我收到的数据输入。它必须转换为二进制值,然后旋转它。 unsigned int red = 1206420333240;
提前致谢!
答案 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位数字。