mikrocontroller.net

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


Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.