Forum: Compiler & IDEs avr-gcc: Controllerunabhäniger Zugriff auf Timer


von Ulrich (Gast)


Lesenswert?

Hi,
ich "klaue" in letzter Zeit sehr viel fertig programmiertes aus dem
Internet, für eigene Basteleien. Ich verwende jedoch im Gegensatz zu
den Personen die den ganzen Code Programmieren eigentlich nur den
Atmega8.
Aktuell wollte ich ein Projekt welches mit dem ATtiny2313 arbeitet für
den Atmega8 compilieren. Natürlich gab es Fehlermeldungen und das große
Suchen und Anpassen kann beginnen. Dabei ist mir folgender Gedanke und
folgende Frage gekommen:
- Gibts da eine Tabelle/Anleitung/Leitfaden in dem drinnensteht wie man
die Timer für welchen Controller anpassen muss...
- Wäre es nicht möglich den Zugriff auf die Timer über Macros laufen zu
lassen welche dann je nach Controller den Zugriff anpassen?
- Oder packt ihr da die Datenblätter aus?

Wäre mal Interesannt zu Erfahren ob ich mit meinem Problem allein bin
und ob es da eine gewissen Resonanz gibt.
Falls eine große Nachfrage hier entsteht, wäre dies hoffentlich eine
Anregung für die Personen die so etwas entwickeln könnten.
Auserdem würde sich dann da hoffentlich eine Standardisierung bilden.
Wenn die Macros gut sind würde dies der Entwicklungszeit und
Controllerunabhänigkeit zugute kommen.

Mfg
Ulrich

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Es gab mal die Idee, eine Datei <compat/io.h> oder sowas zu
bauen, die Derartiges (nicht nur für Timer) implementiert.
Es bräuchte dafür aber einfach mal jemanden, der das tut.  Der
Anspruch, das für möglichst viele AVR-Typen hinzubekommen, macht
daraus ein ziemlich großes Unterfangen...

> Oder packt ihr da die Datenblätter aus?

Meist hat man sowieso genügend Kleinkram, der von der konkreten
Hardware abhängt, das fängt ja schon bei der Verdrahtung des
Boards an (welches Signal generiert einen Extern-Interrupt etc.).
Da kommt man, wenn man das portabel gestalten will, kaum um eine
Art HAL (hardware abstraction layer) herum.  Klingt hochtrabend,
wird aber aus Effektivitätsgründen oft genug in Makro-Form
implementiert, dadurch kostet es, wenn man es richtig macht,
keine Laufzeit.  Unterschied zu deinem Vorschlag: man abstrahiert
genau das, was man fürs konkrete Projekt braucht, und nicht
,,alles'', was ,,alle'' AVRs bieten.  Damit bleibt der Rahmen
überschaubar.

von Ulrich (Gast)


Lesenswert?

Da habe ich ja gleich den richtigen Erwischt ;-)

Eine HAL für alles halte ich auch übertrieben und nicht
realisierbar(damits mit jedem controller läuft)

z.B.: Für jeden verwendeten Pin habe ich ein Macro zum auslesen und
setzen. Wenn ich dann auf einen anderen Controllerumziehe ist das eine
kleine änderung in der *.h und alles läuft wieder.

Sowie bei den Ausgängen wäre es halt bei den Timern auch geschickt.
Mir würde es schon reichen wenn es irgendein Macro gibt bei dem man
dann nur noch die Anpassung an einen neuen timer in der *.h machen
muss. So wie bei den IOs halt auch.

Vielleicht fällt da jemandem eine kreative Lösung ein wie man so ein
Macro gestalten könnte...

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
Noch kein Account? Hier anmelden.