Estou programando há um bom tempo, mas sou novo no Arduino e na Programação AVR. A principal pergunta que tenho sobre a programação desses microcontroladores é que existem grandes diferenças no design de código em Classes orientadas a objetos versus a programação em linha mais tradicional que já vi em muitos exemplos?
Em outras palavras, no mundo dos controladores Arduino / AVR, há alguma economia com memória e desempenho utilizando classes ou vice-versa?
Digamos, por exemplo, que temos uma classe:
class SomeClass(){
private:
int x;
int y;
public:
void foo();
void bar();
}
SomeClass thisClass;
thisClass.foo();
thisClass.bar();
Haveria algum ganho de desempenho ou memória projetando o programa de maneira mais integrada, como:
int x;
int y;
void foo(){ /*** Do something ***/};
void bar(){ /*** Do more stuff ***/};
Tentei fazer algumas pesquisas no Stack Exchange e no Google, mas não consegui encontrar a resposta certa. Estou procurando a coisa mais próxima que pude encontrar foi essa questão do Stack Exchange.
A razão pela qual estou perguntando isso é que tenho um projeto que precisa ser o mais leve possível e não estou claro como devo projetar meu programa nesse ambiente.
Editar
Obrigado pelas respostas, isso esclareceu as coisas. Há uma coisa sobre a qual não estou muito claro.
Digamos que você tenha uma classe que você está projetando que utiliza o u8glib da seguinte maneira:
class UserInterface{
private:
U8GLIB_ST7920_128X64 Display;
public:
UserInterface();
}
Como você usaria a "Memória dinâmica" como:
UserInterface::UserInterface(){
UserInterface::Display = U8GLIB_ST7920_128X64(LCD_E_PIN, LCD_RW_PIN, LCD_RS_PIN, U8G_PIN_NONE);
}