PIC微控制器有一个非常简单的指令集格式。每一条指令的长度正好是14位,由不同位长度的各种数字组成。在
我正在尝试构建一个函数,它可以接受所有这些输入,并构建一个表示该指令的数字。在
这就是我一直在努力的工作:
def fileRegOp(opcode, d, f):
out = opcode << 13
out = out | d << 7
out = out | f
return out
print "FIN:", bin(fileRegOp(1,True,15))
It输出
FIN: 0b10000010001111
这看起来不错,只是有些地方绕错了方向。我想应该是:
FIN: 0b00000111111000
我已经看到了解决方案,其中包括循环来翻转位,但我相信还有更好的方法。在
写这个函数最优雅的方法是什么?在
有关指令集的详细信息:Datasheet请参阅第121122页
你的班次错了。在
你是在按最上面一位的索引来移动,这是不对的。必须按每个字段中最下面(最右边)位的索引进行移位。在
所以应该是:
通过一些编辑,在左侧添加填充零:
^{pr2}$当然,也可以限制检查参数。在
相关问题 更多 >
编程相关推荐