executer une partie du script toute les secondes
Bonjour,
Je construis un programme qui lit la valeur de mon multimètre via le réseau et affiche la valeur dans une figure.
Entre deux mesures j'avais mis jusqu'à présent "pause 1" mais le temps d'accès à l'appareil prend entre 0.1 et 0.5s.
J'essaie d'utiliser la fonction timer pour lancer une acquisition toutes les 1 seconde , mais j'ai cette erreur :
Citation:
Error while evaluating TimerFcn for timer 'timer-1'
Too many input arguments.
8O
vous pouvez m'aider svp
Merci
Le script :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| %% initialisation
clear;clc;
duree=1;
iterrations=10 ;
%% timer
map = [0.5 0 0
0.9412 0.9412 0.9412];
t = timer();
t.ExecutionMode = 'fixedRate';
t.Period = duree;
t.TasksToExecute = inf;
t.TimerFcn = @acqMultimetre ;
%% Connexion multimetre
type=(':MEAS:VOLT:DC?');
multi=visadev( 'TCPIP0::192.168.0.11::inst0::INSTR' ) ;
figure
colormap (map)
%% début période
start(t)
if i==iterrations
stop(t)
clear multi;
end
%% fonction acquisition
function [] = acqMultimetre()
%for i = 1:iterrations
tic
i=i+1;
write(multi, type);
acq= readline(multi);
mesure=str2double(acq);
M(i)=mesure*1;
plot(M);
xlabel('Durée (s)')
ylabel('Tension (V)')
grid on
toc
end |