- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: "Funktionen" in andere Datei auslagern

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2005
    Ort
    Kaiserslautern
    Beiträge
    794

    "Funktionen" in andere Datei auslagern

    Anzeige

    Praxistest und DIY Projekte
    Hi,

    ich habe vor (absichtlich ) ein größeres (Wecker)projekt in Assembler zu schreiben.

    Schreibe ich aber den ganzen Code in eine Datei, so wird das ganze recht schnell unübersichtlich.

    Gibt es nun einen sinnvollen/richtigen Weg, Funktionen in externe Dateien auszulagern? Sollte man irgendwie mit Header- und Source-Dateien arbeiten, wie in C?

    Gruß, CowZ

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    24.02.2006
    Ort
    3. Planet eines kleinen Sonnensystems in einem Seitenarm der Milchstraße
    Alter
    69
    Beiträge
    622
    Hi,

    Du kannst mit <pre>.include "pfad\name.asm"</pre> andere Assembler-Dateien einfügen. Einen Beitrag dazu gibt es hier. Ich habe keine Erfahrung, wie man dabei optimal mit den Labels und Namen umgeht.

    Gruß

    Fred
    Only entropy comes easy. - Anton Checkhov

  3. #3
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Und wenn du den GCC-Assembler benutzt, kannst du dort im Prinzip genau so arbeiten, wie in C, also mit separaten Sources und Headern.
    MfG
    Stefan

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    12.03.2004
    Ort
    Leipzig
    Alter
    38
    Beiträge
    22
    Du kannst ja mehrere Datein mit Assembler Code anlegen.
    Die musst du dann aber in der "Haupt-Assemblerdatei" oder wie es beim
    AVR Studio heißt im "Entry File" mit .include "name.asm" angeben.

    Alle Datein, die du angiebst, müssen im AVR-Studio im "Source Files"
    geöffnet sein.

    Mit Sprungnefehlen gelangst du dann zu den Labels.

    Macros kannst du natürlich auch noch anlegen.
    Hier kannst du auch noch Werte übergeben.

    Viel Spaß
    Gruß

    Tobi

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2005
    Ort
    Kaiserslautern
    Beiträge
    794
    Hi,

    ok, danke schön

    Gruß, CowZ

  6. #6
    Erfahrener Benutzer Roboter Experte Avatar von ikarus_177
    Registriert seit
    31.12.2007
    Ort
    Grein
    Alter
    30
    Beiträge
    601
    Hallo,

    kann man das auch mit Bascom machen?
    Also eine Datei erstellen mit den ganzen Funktionen (allerdings in Basic geschrieben), und eine zweite, in der die Aufrufe drin sind?

    Viele Grüße

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Das solltest Du separat fragen, da bei dem Titel "Funktionen in andere Dateien auslagern" im Forumszweig "Assembler-Programmierung" kein Bascom-Experte reinschauen wird.

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Doch, die gucken hier auch mal rein. Dauert manchmal nur nen bissel...

    Das geht auch bei Bascom.
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  9. #9
    Erfahrener Benutzer Roboter Experte Avatar von ikarus_177
    Registriert seit
    31.12.2007
    Ort
    Grein
    Alter
    30
    Beiträge
    601
    Hi peterfido,

    danke für deine Antwort!

    Und wie stelle ich das nun in Bascom an? Muss ich da dann für jede "ausgelagerte" Funktion ne eigene Datei machen? Und wie werden die Funktionen dann aus dem "Hauptprogramm" aufgerufen?

    Viele Grüße
    ikarus_177

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    59
    Beiträge
    1.080
    Schaue dir mal den Befehl $include an.

    Der sorgt dafür, das die angegebene Datei so eingebunden wird, als würde der enthaltene Programm-Text direkt anstelle des includes stehen.

    Dies bietet sich nicht nur an, wenn einem das Programm zu lang wird, sondern insbesondere dann, wenn man sich Routinen geschrieben hat, die man nicht nur in einem Projekt gut verwenden kann. Anstelle den ganzen Programmtext dieser Routinen nun immer wieder in die diversen Projekte einzukopieren, kann man einfach die Datei mit dem Programmtext includen.

    Ein weiterer Vorteil ist, das man, falls einem Verbesserungen an so einem Programmteil einfallen, nicht in allen Projekten Änderungen eintippen muss, sondern nur die jeweilige include-Datei geändert werden muss. (neu compiliert muss es aber in jedem Fall werden)

    Nochmal: du behandelst die Funktionen und Prozeduren der include-Datei genau wie Programmtext, der im Hauptlisting steht. Bascom nimmt beim Compilieren den Programmtext der include-Datei und schreibt diesen genau an die Stelle, an der der include-Befehl steht.

    Gruß MeckPommER
    Mein Hexapod im Detail auf www.vreal.de

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad