Mesures rapides sur un port (exemple de PMB)
Ici, il n'y a pas d'appel d'interruption : simplement
on déclare un tableau de 1000 élément, chaque élément
constituant une mesure :
chronomètre, nombre d'interruptions horloges, valeur lue sur
l'interface PMB.
On affiche ensuite ces 1000 mesures, en ayant converti les deux premiers
éléments de chaque mesure en un seul nombre, comptant les
microsecondes.
Parallèlement, ces mesures sont sauvegardées dans un fichier.
Le résultat est que sur mon (pas très récent) ordinateur
fonctionnant avec un Pentium à 75 MHz,
on peut faire 1000 mesures en 120 ms, soit une mesure en 120 µs.
On peut imaginer qu'avec les microprocesseurs rapides actuels (200
ou 300 MHz),
ce programme ne nécessiterait que 30 µs par mesure.
Pour un simple langage interprété, c'est bon !
10 word 4
20 dim Tableau(1000,3)
40 T1=inp(64):T2=inp(64):T0=T2*256+T1
41 Tableau(0,1)=T0
50 for I=1 to 1000
60 out 67,0
70 T1=inp(64):T2=inp(64):Temp=T2*256+T1
80 Tableau(I,1)=Temp
90 if I>0 then if Tableau(I,1)>Tableau(I-1,1)
then Memo=Memo+1
120 Tableau(I,2)=Memo
130 ' mettre ici votre réalisation de mesure,
dans tableau(i,3)
137 out 0x0300,4:Tableau(I,3)=inp(0x0301)
138 ' ici, on fait la mesure sur la carte PMB
140 next I
145 open "monfich.txt" for append as #1
150 for I=1 to 1000
151 Tempstotal=Tableau(I,2)*65536+Tableau(0,1)-Tableau(I,1)
155 print Tableau(I,1),Tableau(I,2),"tempstotal:",Tempstotal,Tableau(I,3)
156 print #1,Tableau(I,1),Tableau(I,2),"tempstotal:",Tempstotal,Tableau(I,3)
160 next I
165 close #1
170 end