bonjour à tous
j'ai une petit application avec MATLAB et isis
je fais la simulation de la commande d'un système par un microcontrolleur (pic) via une interface MATLAB;
MATLAB envoi des données vers le pic à travers le port série selon le code suivant
une fois ces données sont reçues par le pic, ce dernier commence à générer un signal dont la valeur est calculée chaque 100 ms (c'est le signal qui commande un moteur par exemple).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 s=serial('COM2'); set(s,'BaudRate',9600); fopen(s); t=[-2.4406 , 0.1652, -0.0301 , 0.1177,-0.00017 , 0.1784... 0.1815, -0.7570 ,-0.9396 ,-0.9940 ,-0.9986 , -0.9998]; for k=1:length(t) fprintf(s,'%f',t(k)); enter=13; fwrite(s,enter); pause(0.2) end fclose(s) delete(s) clear s
toutes ces taches sont réalisées et fonctionnent comme il faut, il me reste un petit souci; je veux tracer le signal de commande sur l'interface MATLAB, c'est à dire le signal calculé chaque 100 ms doit aussi être envoyé vers l'interface MATLAB via rs232 et ensuite tracé en temps réel,
ma question de façon directe est; comment faire la lecture sur le port série des données éventuellement reçues chaque 100 ms
j’espère que mon problème est clair et merci d'avance.
pour plus vous assimiler les choses, je cherche le code qui rassemble au code suivant relatif au pic
Nb; la fonction fscanf de MATLAB prend beaucoup de temps
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 while(h<12) { if (kbhit()) { gets(c); t[h]=n; h=h+1; } }
Partager