#说明:有时候对dump 或Read出来的寄存器对照datasheet需要按位解析,以下是解析代码
def GetBit(data,end,start):
try:
return (data&(((2<<(end-start))-1)<<start))>>start
except:
return 0
def GetBit_new(data,pos):
data=int(data,16)
if ":" in pos:
end=int(pos.split(":")[0])
start=int(pos.split(":")[1])
else:
start=int(pos)
end=start
# print(data,end,start,type(data),type(end),type(start))
try:
return (data&(((2<<(end-start))-1)<<start))>>start
except:
return 0
if __name__== "__main__" :
value="123E4"
bit_pos1="7:0"
bit_pos2="7"
result1=GetBit_new(value,bit_pos1)
print(hex(result1))
result2=GetBit_new(value,bit_pos2)
print(result2)