Parlons Arduino > Modélisation, Architectures logicielles et matérielles

Arduino et C++

(1/2) > >>

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

[0] Index des messages

[#] Page suivante

Utiliser la version classique