Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "mbed.h"
- //--------- Tx Rx
- Serial uart(p9, p10,10000); // Créez un port série, connecté aux broches d'émission et de réception 9 et 10 à 9600bauds
- InterruptIn event(p8); // InterruptIn : Interruption (broche PinName) : Créez un interrupteur connecté à la broche 8 c'est-à-dire la broche 8.
- void Spint_compt(); //
- unsigned int comptage,i,val,imod,duree=1,temps; //
- unsigned int n=0,nlu=0,nd; //
- #define max 15000 //
- unsigned short Tab[15000]; //
- int main() //Programme Principal
- {
- event.rise(&Spint_compt); // Permet de joindre une fonction membre pour appeler lorsqu'un front montant survient sur l'entrée.
- while(1) // Boucle Tant que (toujours faire)
- {
- comptage=0; //
- wait(duree); // 1s
- //----------STOCKAGE
- if(comptage!=0 && Tab[n]==0) //
- {
- Tab[n]=comptage; //
- n= (n+1)%max; //
- }
- //*******************************
- //---DEMANDE LABVIEW
- //--Réception Durée et nbre de mesures
- if(uart.readable()) //permet d'exécuter une série d'instructions et déterminez s'il existe un caractére disponible à lire.
- {
- //----Attendre de tout recevoir
- wait(0.04); // Tempo de 0.04s
- //convertir DUREE
- temps=duree;
- duree=uart.getc()&0x0F; //
- val=uart.getc(); //
- while(val!=0x0A) //
- {
- duree=duree*10+ (val&0x0F); //
- val=uart.getc(); //
- }
- //-- Init à 0 RAM
- if (duree!=temps) //
- {
- for(i=0;i<max;i++) Tab[i]=0; //
- n=0;nlu=0; //
- }
- //convertir Nbre mesure
- val=(uart.getc())&0x0F; //
- while(uart.readable()) //
- {
- val=val*10; //
- val=val+ ((uart.getc())&0x0F); //
- }
- //Envoyer les mesures
- nd=nlu; // la valeur du pointeur nd prend la valeur du pointeur nlu
- for(i=nd;i<(nd+val);i++) //
- {
- imod= i%15000; // lorsque imod vient à 15000 cela repasse à 0
- uart.printf("%d\n",Tab[imod]); //
- if(Tab[imod]!=0) //
- nlu=(nlu+1)%15000; // pointeur de lecture nlu incrémenter à n+1 modulo 15000
- Tab[imod]=0; // Remplace la valeur lue par 0
- wait(0.001); //Tempo de 0.001s
- }
- }
- }
- }
- void Spint_compt() // Permet de définir le format de transmission utilisé par le port série.
- {
- comptage++; //Incrémenter
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement