gerrard 发表于 2022-12-12 20:37:52

lHMI Lua 位操作 和 get_uint16

1、get_uint16(VT_LW, 0x1060)这个函数是取了0x1060 和0x1061两个字节的数据吗,还是只取了0x1060地址的数据
2、取出来的数据,怎么单独取出某个位是1还是0

If后要接end 发表于 2022-12-13 08:51:44

1、取0x1060这个地址的寄存器数据,HMI一个地址就是1个寄存器,一个寄存器为16位数据

If后要接end 发表于 2022-12-13 08:52:20

--@set_valbit:设置位状态
--data:源数据
--bitmask:第几个位,如bit0,填0; bit1,填1;
--state:置0/1
function set_valbit(data, bitmask, state)

    bitmask= (1 << bitmask) & 0xFF

    if state == 0
    then
      data = data & (~bitmask)
    elseif state == 1
    then
      data = data | bitmask
    end

    return data
end

miyuhao 发表于 2023-10-6 20:13:52

If后要接end 发表于 2022-12-13 08:52
--@set_valbit:设置位状态
--data:源数据
--bitmask:第几个位,如bit0,填0; bit1,填1;


串口屏如果读取哪个位的数据用哪个API

If后要接end 发表于 2023-10-7 08:57:02

miyuhao 发表于 2023-10-6 20:13
串口屏如果读取哪个位的数据用哪个API

get_bit()

walker12 发表于 2024-1-18 16:00:21

If后要接end 发表于 2023-10-7 08:57
get_bit()

要读取某个寄存器中的某一位的值,怎么用这个指令?

If后要接end 发表于 2024-1-18 16:18:40

字寄存器就get_uint16/get_int16/get_uint32/get_int32,然后>>左移对应的位数
页: [1]
查看完整版本: lHMI Lua 位操作 和 get_uint16