Укажите, происходят ли шаги регистра VXI после передачи данных
Можно конфигурировать MemoryIncrement
чтобы быть block
или FIFO
. Если MemoryIncrement
является block
, memread
и memwrite
функции увеличивают смещение после каждой операции чтения и записи, и данные передаются от или к последовательным элементам памяти. Если MemoryIncrement
является FIFO
, memread
и memwrite
функции не увеличивают смещение регистра VXI, и данные всегда считываются или записываются в один и тот же элемент памяти.
Использование | VISA-VXI, VISA-GPIB-VXI |
Только для чтения | Никогда |
Тип данных | Вектор символов |
Значение по умолчанию заключено в скобки ({}
).
| Увеличьте смещение регистра VXI. |
| Не увеличивайте смещение регистра VXI. |
Создайте объект VISA-VXI v
связана с корпусом VXI с индексом 0 и прибором с логическим адресом 8.
v = visa('ni','VXI0::8::INSTR'); fopen(v)
Сконфигурируйте оборудование для операции чтения и записи FIFO.
v.MemoryIncrement = 'FIFO'
Запишите два значения в регистр VXI, начиная со смещения 16. Потому что MemoryIncrement
является FIFO
Смещение регистра VXI не изменяется, и оба значения записываются в смещение 16.
memwrite(v,[1984 2000],16,'uint32','A16')
Считайте значение со смещением 16. Возвращаемое значение является вторым значением, записанным с memwrite
функция.
memread(v,16,'uint32') ans = 2000
Считайте два значения, начиная со смещения 16. Обратите внимание, что оба значения считываются со смещением 16.
memread(v,16,'uint32','A16',2); ans = 2000 2000
Сконфигурируйте оборудование для операции блока чтения и записи.
v.MemoryIncrement = 'block'
Запишите два значения в регистр VXI, начиная со смещения 16. Первое значение записывается в смещение 16, а второе значение записывается в смещение 20, потому что uint32
значение состоит из четырех байтов.
memwrite(v,[1984 2000],16,'uint32','A16')
Считайте значение со смещением 16. Возвращенное значение является первым значением, записанным с memwrite
функция.
memread(v,16,'uint32') ans = 1984
Считайте два значения, начиная со смещения 16. Первое значение считывается со смещением 16, а второе значение считывается со смещением 20.
memread(v,16,'uint32','A16',2); ans = 1984 2000