Déterminer Le Temps D'exécution D'une Fonction En Langage Arduino.
Maybe your like
- Se souvenir de moi ?
- Retour sur Futura
- S'inscrire

- Forum
- Futura-Techno : les forums de l'informatique et des technologies
- Électronique
- Déterminer le temps d'exécution d'une fonction en langage Arduino.
- 29/07/2014, 01h36 #1 invite7ade7f5a Date d'inscription janvier 1970 Messages 140
------
Déterminer le temps d'exécution d'une fonction en langage Arduino. BONSOIR, Je suis un débutant en Arduino et je me demande est ce qu'il est possible d’exécuter une fonction (qui a été déclaré au par-avant ) pendant une durée de temps puis passer a une autre ainsi de suite. si oui donnez moi un petit exemple pour montrer la syntaxe. Merci beaucoup pour vos réponses. Cordialement.
----- - 29/07/2014, 03h02 #2 invitef0c79320 Date d'inscription janvier 1970 Messages 140
Re : déterminer la durée d'execution d'une fonction en language arduino.
je n'ai pas pu comprendre ce que tu veux exctement: fixer le temps d'exécution, ou déterminer la durée d'exécution d'une fonction? fixer le temp: Code: foo1(); delay(1000); // delay d'une seconde foo2(); delay(1000); // delay d'une seconde foo3(); delay(1000); // delay d'une seconde determiner le temp: Code: int duree: = millis(); foo(); duree = millis() - duree; Serial.print(duree);
- 29/07/2014, 03h52 #3 invite7ade7f5a Date d'inscription janvier 1970 Messages 140
Re : déterminer la durée d'execution d'une fonction en language arduino.
bonsoir Merci pour votre reponse
exactement moi je veux déterminer le temps d'execution de la fonction merci pour votre rectification. STP j'ai pas bien comprit le code (le deuxième ) ou je doit mettre les paramètre de temps. et merci encore . - 29/07/2014, 08h15 #4 invite1d577638
Date d'inscription janvier 1970 Messages 3 825 Re : déterminer la durée d'execution d'une fonction en language arduino.
Le 2ème code te permet de chronométrer le temps nécessaire à l'exécution de la fonction foo(). millis() est une fonction interne de la arduino qui contient le nombre de millisecondes écoulées depuis la mise sous tension de la carte. Tu enregistres ce nombre (dans duree) avant l’exécution de la fonction, puis ensuite tu retires millis() à cette durée. La différence des 2 te donne le nombre de millisecondes écoulées pendant l'exécution de foo() !
- Aujourd'hui A voir en vidéo sur Futura
- 29/07/2014, 16h01 #5 invite7ade7f5a Date d'inscription janvier 1970 Messages 140
Re : déterminer la durée d'execution d'une fonction en language arduino.
Bonjour Yoruk, Pouvez vous me donner un exemple simple et concret que je pourrait exécuter sur le logiciel Arduino directement parce-que quand j’essaye d'appliquer sur mon code sa fonctionne pas :/ . Merci pour votre réponse et a bien tôt.
- 29/07/2014, 16h05 #6 invite1d577638
Date d'inscription janvier 1970 Messages 3 825 Re : Déterminer le temps d'exécution d'une fonction en langage Arduino.
Le code de mkh.mourad est correct... Ne connaissant pas le tien, je ne peux rien faire de mieux. Poste le !
- 30/07/2014, 03h45 #7 invite7ade7f5a Date d'inscription janvier 1970 Messages 140
Re : Déterminer le temps d'exécution d'une fonction en langage Arduino.
Bonsoir yoruk, Mon programme est destiné pour piloter un afficheur 2*7 segment il est un peux long (même tros). SVP pouvez vous me dit comment employer le code de mkh.Mourad car quand je met int duree: = millis(); dans l'entête de mon programme avec mes paramètre il affiche une erreur . SVP aidez moi
- 30/07/2014, 05h44 #8 invitef0c79320 Date d'inscription janvier 1970 Messages 140
Re : Déterminer le temps d'exécution d'une fonction en langage Arduino.
Merci Yoruk. @kaky: Comme t'as dit Yoruk, on ne peut rien faire pour t'aider si tu ne postes pas la portion de code que tu veux chronométrer le temp écoulé depuis le début jusqu'au sa fin. Code: void setup (){ // tes initialisations hardware .. .. .. Serial.begin(9600); } unsigned long duree; void loop (){ // la boucle principale .. .. .. // micros() est une fonction similaire à millis() sauf qu'elle compte des micro secondes au lieu des milli secondes duree = micros(); // ou millis suivant la grandeur du temps mesuré // ton code à mesurer .. .. .. // fin du code ciblé duree = micros() - duree; Serial.print("Temps écoulé:\t "); Serial.println(duree); // une petite pose pour ne pas saturer l'affichage dabs le terminal delay(1000); }
- 30/07/2014, 08h09 #9 invite1d577638
Date d'inscription janvier 1970 Messages 3 825 Re : Déterminer le temps d'exécution d'une fonction en langage Arduino.
Tout est dit ! A priori, tu n'as pas à mettre cela dans ton en tête. Si tu as encore des erreurs, indique nous lesquelles !
- 30/07/2014, 17h51 #10 invite7ade7f5a Date d'inscription janvier 1970 Messages 140
Re : Déterminer le temps d'exécution d'une fonction en langage Arduino.
Code: int c2=13; int c1=12; int led8=11; int led7=10; int led6=9; int led5=8; int led4=7; int led3=6; int led2=5; int led1=4; void setup () { pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(led3,OUTPUT); pinMode(led4,OUTPUT); pinMode(led5,OUTPUT); pinMode(led6,OUTPUT); pinMode(led7,OUTPUT); pinMode(led8,OUTPUT); pinMode(c1,OUTPUT); pinMode(c2,OUTPUT); } void affiche01 (void)// la declaration de la fontion sible que je veux cronométrer { digitalWrite(c1,1); digitalWrite(led1,0); digitalWrite(led2,1); digitalWrite(led3,1); digitalWrite(led4,0); digitalWrite(led5,0); digitalWrite(led6,0); digitalWrite(led7,0); delay(5); digitalWrite(c1,0); digitalWrite(led1,0); digitalWrite(led2,1); digitalWrite(led3,1); digitalWrite(led4,0); digitalWrite(led5,0); digitalWrite(led6,0); digitalWrite(led7,0); delay(5); digitalWrite(c2,1); digitalWrite(led1,1); digitalWrite(led2,1); digitalWrite(led3,1); digitalWrite(led4,1); digitalWrite(led5,1); digitalWrite(led6,1); digitalWrite(led7,0); delay(5); digitalWrite(c2,0); digitalWrite(led1,1); digitalWrite(led2,1); digitalWrite(led3,1); digitalWrite(led4,1); digitalWrite(led5,1); digitalWrite(led6,1); digitalWrite(led7,0); delay(5); } unsigned long duree; void loop () { affiche01(); //je veux que la fonction affiche01 s'execute durant 1s et passer a autre chause digitalWrite(led1, HIGH); delay(1000); digitalWrite(led1, LOW); delay(1000); } Bonjour; voila une petit portion de mon code car il est très très long que vous pourriez me donner exemple dessus.
- 30/07/2014, 20h08 #11 invitef0c79320 Date d'inscription janvier 1970 Messages 140
Re : Déterminer le temps d'exécution d'une fonction en langage Arduino.
c'est ca l'art d'Arduino, des fois il simplifie le code, mais le complique trop dans d'autres cas. tu as une fonction dédié pour l'affichage de "01"!! donc pour un affichage de 00 à 99 tu dois avoir une centaine de fonctions???. bon avant de chronométrer quoi que ce soit voici un code, tu le teste pour voir la différence. peut être que j'ai fais des erreurs a toi de les corriger. Code: #define c1 12 // cathode Commun 1 #define c2 13 // cathode Commun 2 #define led1 4 // segment a #define led2 5 // segment b #define led3 6 // segment c #define led4 7 // segment d #define led5 8 // segment e #define led6 9 // segment f #define led7 10 // segment g #define led8 11 // segment pd int digits[10][7] = { { 1, 1, 1, 1, 1, 1, 0 }, // = 0 { 0, 1, 1, 0, 0, 0, 0 }, // = 1 { 1, 1, 0, 1, 1, 0, 1 }, // = 2 { 1, 1, 1, 1, 0, 0, 1 }, // = 3 { 0, 1, 1, 0, 0, 1, 1 }, // = 4 { 1, 0, 1, 1, 0, 1, 1 }, // = 5 { 1, 0, 1, 1, 1, 1, 1 }, // = 6 { 1, 1, 1, 0, 0, 0, 0 }, // = 7 { 1, 1, 1, 1, 1, 1, 1 }, // = 8 { 1, 1, 1, 0, 0, 1, 1 } // = 9 }; unsigned long duree; // d est le digit a afficher: 0..9 void digit(int d) { digitalWrite(led1, digits[d][0]); digitalWrite(led2, digits[d][1]); digitalWrite(led3, digits[d][2]); digitalWrite(led4, digits[d][3]); digitalWrite(led5, digits[d][4]); digitalWrite(led6, digits[d][5]); digitalWrite(led7, digits[d][6]); } // fonction qui affiche les deux digit en alternance entre les unités et les decimal void Affiche(int dec, int unit) { digit(unit); digitalWrite(c1, HIGH); delay(5); digitalWrite(c1, LOW); digit(dec); digitalWrite(c1, HIGH); delay(5); digitalWrite(c1, LOW); } void setup() { pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(led5, OUTPUT); pinMode(led6, OUTPUT); pinMode(led7, OUTPUT); pinMode(led8, OUTPUT); pinMode(c1, OUTPUT); pinMode(c2, OUTPUT); Serial.begin(9600); } void loop() { duree = millis(); while ( (millis() - duree) < 1000) { Affiche(0, 1); // affichage de "01" pendans une seconde. } duree = millis(); while ( (millis() - duree) < 1000) { Affiche(0, 1); // affichage de "10" pendans une seconde. } }
- 30/07/2014, 23h51 #12 invite7ade7f5a Date d'inscription janvier 1970 Messages 140
Re : Déterminer le temps d'exécution d'une fonction en langage Arduino.
Bonjour, Merci beaucoup ça marche
si l'arduino est un arc vous etes un artiste il y'a une petit erreur voici la correction pour : digits c'est un tableau si je comprend bien ?(en c) . SVP je comprend pas comment ton programme parvient a changer la valeur de la variable d. Code: #define c1 12 // cathode Commun 1 #define c2 13 // cathode Commun 2 #define led1 4 // segment a #define led2 5 // segment b #define led3 6 // segment c #define led4 7 // segment d #define led5 8 // segment e #define led6 9 // segment f #define led7 10 // segment g #define led8 11 // segment pd int digits[10][7] = { { 1, 1, 1, 1, 1, 1, 0 }, // = 0 { 0, 1, 1, 0, 0, 0, 0 }, // = 1 { 1, 1, 0, 1, 1, 0, 1 }, // = 2 { 1, 1, 1, 1, 0, 0, 1 }, // = 3 { 0, 1, 1, 0, 0, 1, 1 }, // = 4 { 1, 0, 1, 1, 0, 1, 1 }, // = 5 { 1, 0, 1, 1, 1, 1, 1 }, // = 6 { 1, 1, 1, 0, 0, 0, 0 }, // = 7 { 1, 1, 1, 1, 1, 1, 1 }, // = 8 { 1, 1, 1, 0, 0, 1, 1 } // = 9 }; unsigned long duree; // d est le digit a afficher: 0..9 void digit(int d) { digitalWrite(led1, digits[d][0]); digitalWrite(led2, digits[d][1]); digitalWrite(led3, digits[d][2]); digitalWrite(led4, digits[d][3]); digitalWrite(led5, digits[d][4]); digitalWrite(led6, digits[d][5]); digitalWrite(led7, digits[d][6]); } // fonction qui affiche les deux digit en alternance entre les unités et les decimal void Affiche(int dec, int unit) { digit(unit); digitalWrite(c1, HIGH); delay(5); digitalWrite(c1, LOW); digit(dec); digitalWrite(c2, HIGH); delay(5); digitalWrite(c2, LOW); delay(5); } void setup() { pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); pinMode(led5, OUTPUT); pinMode(led6, OUTPUT); pinMode(led7, OUTPUT); pinMode(led8, OUTPUT); pinMode(c1, OUTPUT); pinMode(c2, OUTPUT); Serial.begin(9600); } void loop() { duree = millis(); while ( (millis() - duree) < 1000) { Affiche(0, 1); // affichage de "01" pendans une seconde. } duree = millis(); while ( (millis() - duree) < 1000) { Affiche(2, 1); // affichage de "10" pendans une seconde. } } - 31/07/2014, 00h39 #13 invitef0c79320 Date d'inscription janvier 1970 Messages 140
Re : Déterminer le temps d'exécution d'une fonction en langage Arduino.
Envoyé par kaky951357
Bonjour, pour : digits c'est un tableau si je comprend bien ?(en c) . digits est un tableau d'entier deux dimensions;
Envoyé par kaky951357
Bonjour, SVP je comprend pas comment ton programme parvient a changer la valeur de la variable d. ??? à chaque digits d correspond une liste d'état des segments de "a" à "g". pour le digit 0 (zéro) on a tous les segments sur ON sauf celle au milieu qui est le segment "g" donc on la représente comme ceci: a b c d e f g 1 1 1 1 1 1 0 le "2" s'écrit: a b c d e f g 1 1 0 1 1 0 1 cette série de zéros et des Uns sont enregistrés dans un tableau deux dimensions. la fonction digit cherche la correspondance de chaque chiffre dans le tableau et affecte les sorties de l'Arduino reliés à l'afficheur 7 segments. - 31/07/2014, 01h14 #14 invite7ade7f5a Date d'inscription janvier 1970 Messages 140
Re : Déterminer le temps d'exécution d'une fonction en langage Arduino.
voila j'ai comprit tu redéfinit une autre fonction qui est affiche() ou la variable d "se transforme" on unit et dec. merci beaucoup j'ai tout comprit
- 31/07/2014, 02h22 #15 invitef0c79320 Date d'inscription janvier 1970 Messages 140
Re : Déterminer le temps d'exécution d'une fonction en langage Arduino.
Pourquoi tu as mis un troisième delay(5) dans la fonction Affiche? C'est un gaspillage de temps. tu peux l'omettre et tu gagneras 5 précieuses milli secondes.
Discussions similaires
-
Temps d'éxécution cycle PIC16F690
Par invite861a22c4 dans le forum Électronique Réponses: 1 Dernier message: 21/05/2014, 11h10 -
Temps d'exécution
Par invitefa15af9f dans le forum Programmation et langages, Algorithmique Réponses: 7 Dernier message: 28/04/2013, 00h38 -
fonction ou commande pour calculer le temps d execution du programme en mikropascal
Par invitec8ad04ce dans le forum Électronique Réponses: 0 Dernier message: 24/03/2012, 23h08 -
Temps d'execution d'une instruction d'un PIC
Par invitea316b35d dans le forum Électronique Réponses: 8 Dernier message: 03/04/2010, 21h01 -
Comparaison de temps d'execution
Par invite72c93427 dans le forum Mathématiques du collège et du lycée Réponses: 3 Dernier message: 01/04/2010, 23h23
Tag » Arduino Compter Le Temps
-
Arduino : Comment Gérer Le Temps
-
Compteur De Temps Entre Deux Mesures Sur Arduino - Français
-
Compter Les Temps D'activité D'une Sortie - Français - Arduino Forum
-
Calculer Le Temps Entre Deux états - Français - Arduino Forum
-
Compter Le Temps Qui S'écoule Dans Notre Vie Sans Utiliser Millis() Et ...
-
La Gestion Du Temps Avec Arduino - L'esprit Do It Yourself
-
Introduire Le Temps - Arduino : Premiers Pas En Informatique ...
-
Comment Gérer Le Temps Dans Un Programme - Locoduino
-
Arduino Cours Sur Le Temps Avec Delay Et Millis - Oui Are Makers
-
Arduino #33: Comment Mesurer Le Temps D'exécution
-
Arduino #25: La Gestion Du Temps - Les Fonctions Millis() Et Micros ...
-
Arduino 33 BLE : Mesure De Temps Et De Fréquence
-
Utilisation De La Fonction Millis() De L'IDE Arduino - AranaCorp
-
[Arduino] Compter Le Temps Par AntoineMompas - Page 1
Affichage des résultats 1 à 15 sur 15