Voila mon bout de code qui pourrait t 'aider:
un peu long mais commenté... good luck
1. Quelques commandes et fonctions utilisées dans le programme
Marker
% positionne le marqueur sélectionné, ici le 1, à la fréquence indiquée
fprintf(obj1,'CALC1:MARK1:X %10.2f Hz',f1)
% permet de basculer en mode manuel
fprintf(obj1,'INIT: CONT OFF')
% le marqueur 1 sur l’écran A
fprintf(obj1,'MARK1 ON')
% attendre que la commane précédente se termine
fprintf(obj1,'INIT;*WAI')
% demander la valeur du champ a la fréquence pointée par le marqueur 1
fprintf(obj1,'CALC:MARK1:Y?')
% recupèrer la valeur donnée par l’instrument et stocke le résultat dans Value_Y
Value_Y=fscanf(obj1);
2. Boucle
Cette fonction permet de récupérer des résultats en choisissant deux fréquences et le pas de fréquence. A chaque pas, on récupère la valeur pour l’afficher dans le fenêtre de commande Matlab.
% pour k allant de f1 à f2 par pas de frequence freq_step
for k=[f1:freq_step:f2]
% incrémentation de j
j=j+1;
% affichage de la frequence et de la valeur
fprintf(' %d\t %12.2f\t %s',j,f3,Value_Y)
fprintf('\n\n')
% placement du marqueur a la fréquence f”
fprintf(obj1,'CALC1:MARK3:X %12.5f Hz',f3)
% affichage sur l’écran A
fprintf(obj1,'MARK3 ON')
% demande de la valeur
fprintf(obj1,'CALC:MARK3:Y?')
% recuperation de a valeur
Value_Y=fscanf(obj1);
% transformation de la valeur numerique en valeur texte
Value_str=num2str(Value_Y);
% incrémentqtion de f3
f3=f3+freq_step;
% fin de la boucle
end
3. Test
Cette fonction permet de vérifier si chaque valeur entrée est valide. On demande des valeurs numériques. Au cas où si d’autres valeurs sont entrées par l’utilisateur, un message d’erreur est affiché.
% si les données ne sont pas numériques
if isnan(str2double(get(handles.”UI Tagname”,'String')))
% boîte de dialogue
errordlg('You must enter a numeric value','Bad Input','modal');
end
3. Store
% ouverture du fichier du nom de file_name
diary (file_name)
C’est ici, que l’on met les boucles avec les resultats que l’on veut afficher.
% fermeture du fichier
diary off
4. Reset
% reset d l’instrument
fprintf(obj1,'*RST');
% on met une temporisation après un RESET car cette commande prend beacoup de temps à se réaliser. Ici, j’ai mis une pause de 1 seconde.
pause(1);