AVR Projekt Module

Gast #4893002
Hallo zusammen,
ich bin gerade dabei ein neues AVR-Projekt zu beginnen und stelle mir 
nun einige Fragen. Ich kann um mein Projekt übersichtlicher zu halten 
viele kleine Module und methoden erstellen. Was mich daran stört ist, 
dass wenn ich für eine kleine Aufgabe direkt eine Methode schreibe und 
diese nur einmal verwendet wird, führt das nicht zu einem 
Delay(Push/Pop-Befehle)?
Gast
Dieter N. schrieb:
> Was mich daran stört ist,
> dass wenn ich für eine kleine Aufgabe direkt eine Methode schreibe und
> diese nur einmal verwendet wird, führt das nicht zu einem
> Delay(Push/Pop-Befehle)?

kommt darauf an, ob es in verschiedenen Dateien ist und wie die 
kompilierst. ( Stichwort: LTO (link-time optimization) )
Gast
Dieter N. schrieb:
> führt das nicht zu einem
> Delay(Push/Pop-Befehle)?

Ähhmm...
Sorry, aber bei einer solchen Frage, kann ich nur vermuten, dass die 
wirklichen Zeitfresser ganz woanders sind.

Eigentlich kann man immer nur in eine Richtung optimieren.
Entweder Speed, oder Platz.
Du versuchst Richtung "Modular" zu optimieren.
Das ist schön und gut so.
Meist muss man dann aber Abstriche bei Speed, UND Platz machen.

Also:
Bilde einen Kompromiss!
Aber das erst, wenn du wirklich ganz genau weißt, WO es eng wird.

Denn:
Für ungenutzten Speicher und eingesparte Taktzyklen gibts kein Geld 
zurück.
Gast
Dieter N. schrieb:
> Was mich daran stört ist,
> dass wenn ich für eine kleine Aufgabe direkt eine Methode schreibe und
> diese nur einmal verwendet wird, führt das nicht zu einem
> Delay(Push/Pop-Befehle)?

Mit diese Frage sollst du dich nur beschaeftigen wenn es wichtig ist.
Wenn zB einen ADC conversion 133.71 statt 133.62 millisekunden dauert, 
ist das nicht wichtig. Aber wenn du ein loop hast der 10000 angerufen 
wird, ja dann ist es wichtig.

Wenn man keine 'Methode' dafuer benutzt, ist es oft schwieriger lesbar 
und ist es schwieriger zum debuggen.
Gast
Hinzu kommt, dass es der Compiler einem oft beim Optimieren abnimmt, ob 
eine Funktion inline benutzt wird, auch wenn diese so gar nicht 
definiert ist -und umgekehrt.
Gast
Dieter N. schrieb:
> wenn ich für eine kleine Aufgabe direkt eine Methode schreibe und diese
> nur einmal verwendet wird, führt das nicht zu einem Delay

Arduino macht das genau so. Wenn das schnell genug für dich wäre, 
brauchst du dir keine Gedanken zu machen.

Ansonsten: Erstmal sauber und modular entwickeln, bis funktionale 
Korrektheit erreicht ist. Dann optimieren, falls und wo nötig.

"static inline" Funktionen oder Macros können dabei helfen, Performance 
und Modularität zu vereinen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.