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