avr-gcc: Controllerunabhäniger Zugriff auf Timer

Gast #368241
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
Moderator Persönliche Seite #368242
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.
Gast #368243
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...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.