Hallo! Angenommen: ich erstelle ein Programm (so weit so gut). Ich versuche, weitblickend zu programmieren und erstelle Programmteile, die ich wiederverwenden kann, z.B. ein C-File für die Ansteuerung eines Motors. Darin kommen auch Timer vor. Also stehen die entsprechenden Timer-Inits und ISR zum Schrittmotor alle im Schrittmotor-C-File. Macht ja irgendwie Sinn. Andererseits habe ich bereits zuvor schon einmal "weiter geblickt" und ein eigenes C-File geschrieben, wo drin alle Timer-Inits des Controllers stehen und die dazugehörigen ISR gleich dazu. Machte damals irgendwie auch Sinn. Aber nun weiss ich nicht in welche Richtung ich weiter denken soll. Vorschlag?
Man kann nicht für alles fertige Dateien haben, spätestens beim Timing muss man sich immer wieder neue Gedanken machen. Woher weisst du denn, dass nicht eine andere Datei zufällig den selben Timer nutzen will. Von daher würde ich die Timer immer projektbezogen einbinden. Ingo
Das ist eine Frage der Software Architektur. Sinvollerweise versucht man hierbei die Hardware zu abstrahieren, indem man eine HAL (hardware abstraction layer) bildet, die eben die Hardware Ports, Timer, E², TWi usw. bedienen kann. Darüber baut man die eigentlichje Aplikation, die dann nur noch über die Hall auf die Hardware zugreift. Dies hat den Vorteil, dass Du zum einen die Hal für unterschiedliche Applikationen wiederverwenden kannst, zum anderen kannst Du die Applikation auch auf andere Controller portieren, indem Du dort dann nur eine entsprechende HAL implementierst, die nach aussenhin die gleiche Schnittstellen hat. Nachteil: Meist ist der Resourcenverbrauch hierbei höher, sodaß mann in der Architektur sehr gut überlegen sollte wie weit man diese Abstraktion treibt. Zudem ist der anfängliche Entwicklungsaufwand ebenfalls höher, und die Verlockung direkt aus der Applikation mal schnell einen Pin direkt einzulesen ohne extra dafür eine Routine zu basteln ist nicht immer gering, wobei dann aber die Portierbarkeit verlorengeht.
Stephan schrieb: > Darin kommen auch Timer vor. Also stehen die entsprechenden Timer-Inits > und ISR zum Schrittmotor alle im Schrittmotor-C-File. > Macht ja irgendwie Sinn. Macht ja irgendwie nur dann Sinn, wenn der verwendete Prozessor für jedes deiner Module, das einen Timer benötigen, auch einen eigenen Timer bietet. Ansonsten wirst du nicht umhin kommen, die ISR's bei jeder Anwendung neu zusammenzustellen. Oliver
jojo1969@gmx.de schrieb: > man eine HAL (hardware abstraction layer) bildet Klingt gut, ich guck mal was das ist!
Stephan schrieb: > jojo1969@gmx.de schrieb: >> man eine HAL (hardware abstraction layer) bildet > > Klingt gut, ich guck mal was das ist! Im Prinzip bist du damit beim Arduino System angelangt. Mit allen Vor- aber auch Nachteilen.
> Vorschlag?
Wenn du nicht WEISST, was du wie aufbereiten musst,
um es wiederverwenden zu können,
dann lass es einfach, denn du machst es eher schlimmer als besser.
Da werden erst aus 1 Zeile 10 weil es dann angeblich wiederverwenbar
ist, dann bei der Wiederverwendung 100 weil erst mal ein Wrapper um die
10 kommt damit man sie verwenden kann.
Und spätestens dann hat jemand den Überblick verloren.
Und das alles, weil man nicht mal 1 Zeile kopieren wollte, falls man
jemals ein neues Projekt mit demselben Prinzip machen wollte.
MaWin schrieb: > Und spätestens dann hat jemand den Überblick verloren. Da steh ich kurz vor! Ich denke um....
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.