Укажите, происходят ли шаги регистра 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