Re: C++, template et pointeur

Page principale

Répondre à ce message
Auteur: Frédéric
Date:  
À: Guilde
Sujet: Re: C++, template et pointeur
Le 23/04/2024, Edgar a écrit :

> Une ISR étant une fonction nue, les seules données auxquelles elle peut
> accéder sont des variables globales ou statiques, dont l'adresse est
> connue à la compilation. J'ai l'impression que tu es en train d'essayer
> de contourner cette limitation par tous les moyens, mais ça ne pourra
> jamais marcher.
> [...]
> Un paramètre de template doit aussi être une constante connue à la
> compilation. Tu ne peux pas utiliser quelque chose qui est créé
> dynamiquement.


Ouais, la mention du this dans l'erreur me faisait craindre ça...

> Si tu veux appeler Encoder::begin() depuis un constructeur (pas sûr que
> ce soit une bonne idée), tu pourrais transformer la classe
> ClosedLoopMotor en un template :


Bon, je ne pige pas tout, mais je vais essayer de mettre ça en place. Si je
fais en sorte que Encoder::begin() soit appelée dans une méthode begin()
de ClosedLoopMotor, c'est un peu plus propre ?

Dire que j'ai poussé les étudiants à faire une architecture objet, pour
rendre le code plus lisible :o/

Est-ce que c'est un truc qui pourrait être amélioré dans la librairie
Arduino ? Une fonction attachInterrupt() un peu plus sioux ?

-- 
    Frédéric