Выполните операцию записи маски в регистр удержания
maskWrite(m,
записывает данные в объект MODBUS address
,andMask
,orMask
)m
в регистр держателя по адресу address
, с использованием указанных значений маски. Функция может устанавливать или удалять отдельные биты в определенном регистре удержания. Это операция чтения/изменения/записи, в которой используется комбинация маски AND, маски OR и текущего содержимого регистра.
Алгоритм функции работает следующим образом:
Result = (register value AND andMask) OR (orMask AND (NOT andMask))
Для примера:
Hex Binary Current contents 12 0001 0010 And_Mask F2 1111 0010 Or_Mask 25 0010 0101 (NOT And_Mask) 0D 0000 1101 Result 17 0001 0111
Если на orMask
значение 0, результатом является просто логический ANDing текущего содержимого и andMask
. Если на andMask
значение 0, результат равен orMask
значение.