Ich programmiere schon eine ganze Weile, aber ich bin neu in der Arduino- und AVR-Programmierung. Die Hauptfrage, die ich zur Programmierung dieser Mikrocontroller habe, ist, ob es große Unterschiede beim Entwerfen von Code in objektorientierten Klassen gegenüber der traditionelleren Inline-Programmierung gibt, die ich in vielen Beispielen gesehen habe.
Mit anderen Worten, gibt es in der Welt der Arduino / AVR-Controller Einsparungen bei Speicher und Leistung bei Verwendung von Klassen oder umgekehrt?
Nehmen wir zum Beispiel an, wir haben eine Klasse:
class SomeClass(){
private:
int x;
int y;
public:
void foo();
void bar();
}
SomeClass thisClass;
thisClass.foo();
thisClass.bar();
Würde es irgendwelche Leistungs- oder Speichergewinne geben, die das Programm inlineer gestalten, wie:
int x;
int y;
void foo(){ /*** Do something ***/};
void bar(){ /*** Do more stuff ***/};
Ich habe versucht, einige Suchanfragen in Stack Exchange und Google durchzuführen, konnte jedoch nicht die Antwort finden, die ich suche. Das nächste, was ich finden konnte, war diese Stack Exchange-Frage.
Der Grund, warum ich danach frage, ist, dass ich ein Projekt habe, das so leicht wie möglich sein muss, und mir ist nicht klar, wie ich mein Programm in dieser Umgebung gestalten soll.
Bearbeiten
Vielen Dank für die Antworten, dies hat Licht ins Dunkel gebracht. Eines ist mir nicht ganz klar.
Angenommen, Sie haben eine Klasse, die Sie entwerfen und die u8glib wie folgt verwendet:
class UserInterface{
private:
U8GLIB_ST7920_128X64 Display;
public:
UserInterface();
}
Wie würden Sie sich mit "Dynamic Memory" wie folgt fortbewegen?
UserInterface::UserInterface(){
UserInterface::Display = U8GLIB_ST7920_128X64(LCD_E_PIN, LCD_RW_PIN, LCD_RS_PIN, U8G_PIN_NONE);
}