Demande d'aide pour compréhension programme Arduino
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 27 nov. 2023 à 18:20
- "Windows 10"
- Programme demarrage windows 10 - Guide
- Désinstaller programme windows 10 - Guide
- Programme démarrage windows 10 - Guide
- Forcer la fermeture d'un programme - Guide
2 réponses
27 nov. 2023 à 18:20
C'est de l'Arduino, ce n'est effectivement pas du C (d'ailleurs il y a des éléments de C++ aussi dans ce langage), même si la syntaxe ressemble, c'est un langage à part entière.
Je me suis familiarisé avec Arduino il y a longtemps, mais pas de façon approfondie.
Dans un programme Arduino, la fonction setup est appelée automatiquement 1 fois au démarrage, et loop est appelée automatiquement en boucle, comme son nom l'indique, une fois le setup terminé (tu n'as pas à appeler explicitement ces fonctions, c'est juste comme cela que cela fonctionne dans ce langage).
Dans ce code elle est vide et ne fait rien elle-même car les parties actives sont exécutées par une interruption provenant d'un timer du matériel. La fonction ISR() est appelée lorsque l'interruption se produit (visiblement toutes les 100 ms). "ISR" signifie "Interrupt Service Routines".
On en parle là :
https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/
et sur ce lien auquel renvoie la documentation ci-dessus : http://gammon.com.au/interrupts
Comme le code "récupéré" par chris3874 est loin de faire une utilisation évidente de l'Arduino, je pense que chris3874 devrait poser sa question sur un forum Arduino.
27 nov. 2023 à 15:05
Bonjour,
C'est difficile à dire même si on fait du C, car en réalité, il faut regarder la documentation associée à chaque fonction, pour la plupart fournies par Arduino. Le point de départ serait donc de regarder ici.
Sur le principe :
- les lignes 1-2 incluent les headers fournissant les fonctions impliquées dans ton programme ;
- les lignes 4-9 déclarent des variables globales au programme ;
- Vu le nommage il est sans doute question d'un électrocardiogramme
- la ligne 12 déclare une fonction qui sera implémentée par la suite (l27) ;
- la fonction setup crée la connexion vers le périphérique, visiblement connecté à un port série ;
- la fonction loop ne fait rien, mais te laisse l'opportunité de faire quelque chose à chaque fois qu'elle est appelée (mais elle n'est pas invoquée explicitement dans ton code, donc difficile de dire quand)
- la fonction timerSetup... voir les commentaires :-) ;
- la fin du programme semble être le programme principal ;
- on lit un code PIN et on l'envoie sur le port série
- on crée une chaîne contenant une valeur flottante (ecgValueFloat) et on l'envoie sur le port série
- on envoie alternativement un signal haut ou bas sur ledPin.
Bonne chance