Sto programmando da un po 'di tempo, ma sono nuovo di Arduino e AVR. La domanda principale che ho sulla programmazione di questi microcontroller è che ci sono grandi differenze nella progettazione del codice nelle classi orientate agli oggetti rispetto alla programmazione in linea più tradizionale che ho visto in molti esempi?
In altre parole, nel mondo dei controller Arduino / AVR ci sono risparmi con memoria e prestazioni che utilizzano classi o viceversa?
Supponiamo ad esempio che abbiamo una classe:
class SomeClass(){
private:
int x;
int y;
public:
void foo();
void bar();
}
SomeClass thisClass;
thisClass.foo();
thisClass.bar();
Ci sarebbero prestazioni o guadagni di memoria nel progettare il programma in modo più integrato come:
int x;
int y;
void foo(){ /*** Do something ***/};
void bar(){ /*** Do more stuff ***/};
Ho provato a fare alcune ricerche su Stack Exchange e Google ma non sono riuscito a trovare la risposta che sto cercando la cosa più vicina che sono riuscito a trovare è stata questa domanda di scambio di stack.
Il motivo per cui sto chiedendo questo è che ho un progetto che deve essere il più leggero possibile e non sono chiaro come dovrei progettare il mio programma in questo ambiente.
modificare
Grazie per le risposte, questo ha fatto luce sulle cose. C'è una cosa di cui non sono abbastanza chiaro.
Supponi di avere una classe che stai progettando che utilizza u8glib come segue:
class UserInterface{
private:
U8GLIB_ST7920_128X64 Display;
public:
UserInterface();
}
Come ti muoveresti usando "Dynamic Memory" come:
UserInterface::UserInterface(){
UserInterface::Display = U8GLIB_ST7920_128X64(LCD_E_PIN, LCD_RW_PIN, LCD_RS_PIN, U8G_PIN_NONE);
}