В этом примере показано, как использовать выходной канал счетчика устройства, чтобы сгенерировать импульсы для внешнего таймера в получении
В этом примере вы генерируете часы в одном DataAcquisition с помощью встречного выхода, образовывают канал и экспортируют часы в другой DataAcquisition, который получает цифровые данные. Встречный выход и цифровая подсистема могут быть на том же устройстве или на различных устройствах.
Примечание
Импорт внешнего таймера автоматически не устанавливает частоту развертки вашего DataAcquisition. Вручную установите DataAcquisition Rate
значение свойства, чтобы совпадать с ожидаемой частотой внешнего таймера.
Создайте синхронизированный DataAcquisition со встречным выходным каналом, который постоянно генерирует импульсы частоты в фоновом режиме. Можно использовать этот канал в качестве внешнего таймера для синхронизированного цифрового приобретения.
Задайте тактовую частоту, которая будет использоваться для синхронизации частоты развертки вашего встречного выхода, а также уровня вашего цифрового приобретения.
clockFreq = 100;
Создайте объект DataAcquisition и добавьте встречный выходной канал для PulseGeneration
тип измерения.
daqClk = daq("ni"); ch1 = addoutput(daqClk,"Dev1","ctr0","PulseGeneration");
Совет
Убедитесь встречный канал, который вы добавляете, не используется в различном DataAcquisition, в противном случае терминальная ошибка конфликта происходит.
Сохраните встречный выходной ID терминала в переменную, таким образом, можно использовать его позже, чтобы задать внешний таймер, который синхронизирует цифровые синхронизированные операции.
clkTerminal = ch1.Terminal;
Установите частоту своего встречного канала к тактовой частоте.
ch1.Frequency = clockFreq;
Создайте DataAcquisition для цифрового входа и импортируйте внешний таймер из часов DataAcquisition.
Создайте DataAcquisition и добавьте цифровую входную линию от порта 0
линия 2
на Dev1
.
daqDgt = daq("ni"); addinput(daqDgt,"Dev1","Port0/Line2","Digital")
Примечание
Не вся поддержка устройств синхронизировала цифровые операции I/O с аппаратной синхронизацией. Для этих устройств можно использовать синхронизированные операции программного обеспечения с одним вызовами скана read
и write
.
Устройства, которые поддерживают синхронизированные цифровые операции I/O, не могут поддержать их на всех портах. Проверяйте свои спецификации устройств.
Совет
Ресурсы терминала PFI могут быть совместно использованы. Проверяйте свою маршрутизацию устройства в приложение MAX NI.
Установите частоту развертки DataAcquisition на то же значение как уровень встречного выходного канала.
daqDgt.Rate = clockFreq;
Импортируйте часы из своих часов DataAcquisition, чтобы синхронизировать ваше приобретение.
addclock(daqDgt,"ScanClock","External",clkTerminal)
Запустите встречный выходной канал, чтобы запуститься постоянно в фоновом режиме.
start(daqClk,"Continuous")
Импульсная генерация сразу начинается на встречном выходе. Этому не нужны данные.
Получите и постройте цифровые входные данные.
dataIn = read(daqDgt,seconds(1),"OutputFormat","Matrix"); plot(dataIn(1:100,1))
Остановите часы DataAcquisition.
stop(daqClk)