Repeat outputs with analogoutput without requiering to use putdata repetadly

Hi all!
I've got my analogoutput channel working as I want. When it receives a digital trigger on line PFI1 it starts the function that I loaded.
ao_Ref = analogoutput('nidaq','Dev1');
addchannel(ao_Ref, [1]);
set(ao_Ref,'TriggerType','HwDigital')
set(ao_Ref,'HwDigitalTriggerSource','PFI1');
putdata(ao_Ref, xt);
start(ao_Ref)
However once its started (and finished) the "buffer" on the nidaq card is empty. Triggering again doesn't do anything. Currently, I need to reload the data on the card by repeating the whole code.
Surely there is a much more efficient way to make it output the same data every time the trigger is activated.
Thanks,
Michael

 Accepted Answer

No there isn't, not unless your hardware supports storing a buffer of data and sending the buffer on request. Which some hardware does, but most does not.

4 Comments

Thanks Walter. I guess for now I'll just put the digital trigger line to a function generator, and use the "burst" function from that.
Hi Walter, apparently it's possible.
http://zone.ni.com/devzone/cda/epd/p/id/4787
Would you happen to know what flags I need to trigger to enable this option?
I would need to research that; I am not familiar with how to program those devices, such as to construct the waveform buffer.
Which model device are you using?
NI 6259.
I never managed to get it to work, so I moved this part of the code to a micro controller.

Sign in to comment.

More Answers (2)

Hi Micheal,
Have you looked at the property TriggerRepeat?
Regards, Manisha

2 Comments

No, I have not. I was hoping that something like this would exist. I'm getting an error message now.
(I placed this line of code after the HwDigitalTriggerSource)
??? Error using ==> daqdevice.set at 261
Invalid property: 'TriggerRepeat'.
Error in ==> Ramp at 26
set(ao_Ref,'TriggerRepeat',10)
http://www.mathworks.com/help/toolbox/daq/ref/triggerrepeat.html
Hmm it seems its only applicable to AI (Analog Input) channels.
I'd need it for Analog Output

Sign in to comment.

set(ao_Ref,'RepeatOutput',num)
where num is an integer or inf for continuous output.

Community Treasure Hunt

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

Start Hunting!