Azzera filtri
Azzera filtri

Generate Continuous Analog Output Using NI Card

6 visualizzazioni (ultimi 30 giorni)
Hello,
I am trying to generate continuous analog output using an NI card (NI USB-6343). The frequency of the analog output will be updated based on an algorithm and other input data. However, I am struggling with a more basic step and for now, I would just like to generate a continuous voltage signal using data called from a function (queueMoreData.m). My code:
daq.reset
daq.HardwareInfo.getInstance('DisableReferenceClockSynchronization',true); % This is to overcome a different issue
d = daq.getDevices;
s = daq.createSession('ni');
ch = addAnalogOutputChannel(s,'Dev1','ao0','Voltage');
lh = addlistener(s, 'DataRequired', @queueMoreData);
s.IsContinuous = true;
queueOutputData(s,linspace(-1, 1, 1000)');
startBackground(s);
Which calls the function queueMoreData.m
function queueMoreData(src,event)
queueOutputData(s, linspace(-1, 1, 1000)');
end
But I get the following error:
_Warning: Error occurred while executing callback: Undefined function or variable 's'.
Error in queueMoreData (line 3) queueOutputData(s,linspace(-1, 1, 1000)');
Error in daq.internal.BaseClass/notify (line 91) obj.notify@handle(varargin{:});_
Etc Etc Etc
Any help would be very much appreciated!

Risposta accettata

Walter Roberson
Walter Roberson il 15 Gen 2016
In your callback change the reference from s to src
  2 Commenti
Eddy H
Eddy H il 15 Gen 2016
Great thanks, I should have spotted that!
The mistake is also in the documentation, I'm not sure if anyone reading this has the power to update that.
Walter Roberson
Walter Roberson il 15 Gen 2016
If you go to the bottom right of the documentation page and click on the button to say that it did not help you then you can describe the mistake and the report will be sent to an appropriate person.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by