Je programme depuis un certain temps maintenant, mais je suis nouveau dans la programmation Arduino et AVR. La principale question que j'ai à propos de la programmation de ces microcontrôleurs est la suivante: y a-t-il des différences majeures dans la conception de code dans les classes orientées objet par rapport à la programmation en ligne plus traditionnelle que j'ai vue dans de nombreux exemples?
En d'autres termes, dans le monde des contrôleurs Arduino / AVR, y a-t-il des économies avec la mémoire et les performances en utilisant des classes ou vice versa?
Disons par exemple que nous avons une classe:
class SomeClass(){
private:
int x;
int y;
public:
void foo();
void bar();
}
SomeClass thisClass;
thisClass.foo();
thisClass.bar();
Y aurait-il des gains de performances ou de mémoire en concevant le programme d'une manière plus intégrée comme:
int x;
int y;
void foo(){ /*** Do something ***/};
void bar(){ /*** Do more stuff ***/};
J'ai essayé de faire des recherches sur Stack Exchange et Google, mais je n'ai pas trouvé la réponse que je cherchais. La chose la plus proche que j'ai pu trouver était cette question Stack Exchange.
La raison pour laquelle je pose cette question est que j'ai un projet qui doit être aussi léger que possible et je ne sais pas comment je devrais concevoir mon programme dans cet environnement.
Éditer
Merci pour les réponses, cela a fait la lumière sur les choses. Il y a une chose sur laquelle je ne suis pas tout à fait clair.
Supposons que vous ayez une classe que vous concevez qui utilise u8glib comme suit:
class UserInterface{
private:
U8GLIB_ST7920_128X64 Display;
public:
UserInterface();
}
Comment feriez-vous pour utiliser la «mémoire dynamique» comme:
UserInterface::UserInterface(){
UserInterface::Display = U8GLIB_ST7920_128X64(LCD_E_PIN, LCD_RW_PIN, LCD_RS_PIN, U8G_PIN_NONE);
}