Parlons Arduino > Modélisation, Architectures logicielles et matérielles
Arduino et C++
savignyexpress:
Bonjour à tous,
Après 4 projets d'application des Attiny et Atmega en modélisme ferroviaire, programmés directement en C, je viens de me mettre à l'Arduino. :)
J'ai l'intention d'en profiter pour me (re-)mettre au C++ pour le système de contrôle de mon nouveau réseau N. Cherchant sur le web, j'ai trouvé un article excellent sur la conception / réalisation de projets Arduino en C++. Je vais essayer cette approche très prochainement.
Voici l'article, en Anglais: https://paulmurraycbr.github.io/ArduinoTheOOWay.html. Je trouve particulièrement futé la création d'une liste d'objet lors de leurs constructions respectives pour ensuite automatiser l'exécution des fonctions setup et loop de chaque objet.
Comparé à la bibliothèque ScheduleTable de Jean-Luc, l'approche est un peu différente. Ici, chaque classe est responsable de gérer ses timeouts avec des appels à millis(), tandis que ScheduleTable centralise cette gestion.
Enfin, tout comme ScheduleTable, il s'agit ici de de multi-tâches non préemptif, aucune instruction bloquante n'est autorisée, surtout pas delay(). Chaque fonction doit s'efforcer de rendre la main le plus rapidement possible.
Meilleures salutations.
Marc-Henri
BB9004:
Bonjour
Intéressant article : à éditer / méditer ;)
Thierry:
C'est exactement ce qui est fait dans Commanders et Accessories. Des listes chaînées auto-gérées permettent ensuite de balayer tout ce qui est déclaré et à faire ce qu'il faut sans se poser de question. rien n'est bloquant, et tout le fonctionnement est simultané ou presque.
savignyexpress:
Merci beaucoup Thierry pour ce rappel. :)
Je vais relire en détail les sources de ces modules pour bien débuter en C++.
Belle journée et meilleures salutations.
Marc-Henri
Jean-Luc:
Bonjour Marc-Henri
Tu peux également regarder ScheduleTable, SlowMotionServo et LightDimmer, c’est la même technique 8)
Navigation
[#] Page suivante
Utiliser la version classique