le
08-04-2013
10:41 AM
- dernière modification le
02-29-2024
08:48 AM
par
migration-bot
Bonjour,
J'utilise matlab / DAQ toolbox pour acquérir des tensions par le biai d'une carte NI PCIe-6320, j'ai cree une interface afin que l'acquisition commence lors de la reception d'un top externe de déclenchement.
- code utilisé
set(handles.ai,'TriggerType','HwDigital'); set(handles.ai,'HwDigitalTriggerSource','PFI0') set(handles.ai,'TriggerCondition','PositiveEdge') set(handles.ai,'SamplesPerTrigger',handles.nbreacq); start(handles.ai); wait(handles.ai, handles.duree+handles.attente); res = getdata(handles.ai);
- donc si la carte recoit le top externe tout marche correctement, par contre je rencontre un problème lorsque je veux annuler l'acquisition, j'ai programmé un bouton 'stop' en essayant les lignes de code suivantes
% ai = analoginput('nidaq','Dev1'); % delete(ai) % clear ai % daqreset % close % Fct_acq % clear ('ai') % ai.stop() % stop('ai'); % start(ai); % wait(ai, handles.duree+5); % res = getdata(ai); % clear('ai') % daqreset % delete (ai) ; % stop('handles.ai') % % clear all % trigger(handles.ai) % daqreset % % delete(handles.ai) % handles.ai.TimerFcn = {'stop'}; % ai = analoginput('nidaq','Dev1'); % set(ai,'inputtype','SingleEnded') ; % set(ai,'SampleRate',200); % set(ai.Channel,'InputRange',[-10 10]) % addchannel(ai, 0:7); % ai.SamplesPerTrigger = 200; % % watchon; % % drawnow; % start(ai); % wait(ai, 35); % waittilstop (handles.ai); % stop 'handles.ai' % delete(handles.ai); % clear 'handles.ai'
Mais aucune ne fonctionne correctement, je suis obligé de reinitialiser la carte manuellement à chaque fois, si j'essais la fonction daqreset sur matlab le logiciel plante :x
Auriez vous une idée sur la ligne de code que je pourrais associer à un bouton stop permettant de stopper une attente de trigger ?
Seconde question, sauriez vous comment je peux sous matlab détecter le moment ou la carte recoit le top d'acquisition ?
Merci d'avance