PicoScope 7 Software
Available on Windows, Mac and Linux
Code: Select all
%% SETUP SEGMENTS AND CAPTURES
disp('Segments and Captures')
% Divide memory into segments
nSegments = 65000; % Max for 6404D is 2000000 segments
nMaxSamples = 0;
[status.segments, nMaxSamples] = calllib('PS6000', 'ps6000MemorySegments', handle, nSegments, nMaxSamples);
% Set number of captures (can be less than segments)
nCaptures = 65000;
[status.setNumCaptures] = calllib('PS6000', 'ps6000SetNoOfCaptures', handle, nCaptures);
%% SET UP DATA BUFFERS
% This can take time so better to do this before a capture if capturing
% succesive sets of rapid block captures
numPreTriggerSamples = 0;
numPostTriggerSamples = 1000;
num_samples = numPreTriggerSamples + numPostTriggerSamples;
downSampleRatio = 1;
downSampleRatioMode = ps6000Enuminfo.enPS6000RatioMode.PS6000_RATIO_MODE_NONE;
% Create an array of libpointers
disp('Setup libpointer array')
tic;
rapidBlockBuffer(4, nCaptures) = libpointer;
status.setDataBufferBulk = uint32(-1 * ones(4, nCaptures));
for ch = 1:4
for segment = 1:nCaptures
if(channelSettings(ch).enabled)
rapidBlockBuffer(ch, segment) = libpointer('int16Ptr', zeros(num_samples, 1));
end
end
end
toc;
Code: Select all
%% SET CHANNELS
channelA = ps6000Enuminfo.enPS6000Channel.PS6000_CHANNEL_A;
channelB = ps6000Enuminfo.enPS6000Channel.PS6000_CHANNEL_B;
channelSettings(1).enabled = 1;
channelSettings(1).type = ps6000Enuminfo.enPS6000Coupling.PS6000_DC_1M;
channelSettings(1).range = ps6000Enuminfo.enPS6000Range.PS6000_5V;
channelSettings(1).analogueOffset = 0.0;
channelSettings(1).bandwidth = ps6000Enuminfo.enPS6000BandwidthLimiter.PS6000_BW_FULL;
channelSettings(2).enabled = 1;
channelSettings(2).type = ps6000Enuminfo.enPS6000Coupling.PS6000_DC_1M;
channelSettings(2).range = ps6000Enuminfo.enPS6000Range.PS6000_5V;
channelSettings(2).analogueOffset = 0.0;
channelSettings(2).bandwidth = ps6000Enuminfo.enPS6000BandwidthLimiter.PS6000_BW_FULL;
Code: Select all
status = ps6000SetSimpleTrigger(unit->handle, 1, PS6000_TRIGGER_AUX, 16384, PS6000_RISING, 0, 0);