- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 8 von 8

Thema: Programmteile auslagern

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    51
    Beiträge
    180

    Programmteile auslagern

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    ich habe mal ne Frage zur Programmgestaltung.
    Ist es eigentlich unter Bascom möglich, ein zweites Bascom-Programm, in dem sich ausgelagerte Programmteile befinden, in das Hauptprogramm einzubinden?
    Ich meine z.B. einen Programmteil der eine Routine beinhaltet die man in anderen Programmen identisch benötigt wie z.B. einen DCF77 Programmteil der dann Wochentage, Weckerfunktionen, etc. beinhaltet?

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Ist es eigentlich unter Bascom möglich, ein zweites Bascom-Programm ... in das Hauptprogramm einzubinden?
    Ja das geht:
    $include "Zweites_Programm.bas"

    Gruß Dirk

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    51
    Beiträge
    180
    muss ich variablen dann im hauptprogramm oder im ausgelagertem festlegen?

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.03.2005
    Ort
    Schifferstadt
    Alter
    42
    Beiträge
    318
    Hi,

    das ist egal. Mach das wie es für Dich am einfachsten ist.

    Gruß Kay

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    51
    Beiträge
    180
    muss ich das zweite Programm nicht auch compilieren?

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.08.2004
    Ort
    Graz
    Beiträge
    342
    nein, das macht der Compiler für dich . bei einem $include macht der Compiler eigentlich nichts anderes, als den Inhalt der angegebenen Datei einfach an der Stelle im Code einzufügen, dann wird kompiliert.
    Aufpassen muss man allerdings mit Funktionsdefinitionen (Deklaration bringt keine Probleme) und Unterprogrammen (Label und Return), wenn die im regulär ablaufendem Programm stehen werden die auch abgearbeitet.
    Abhilfe schafft, was ich auch in Includes immer mache, ein einfaches Goto.
    Also in etwa so:

    (Inhalt Hauptprogramm)
    Code:
    $regfile = "..."
    ...
    
    $include "my_functions.bas"
    
    Do
       ...
    Loop
    End
    (Inhalt myfunctions.bas)
    Code:
    Declare Function MyFunction(Byval parameter As Byte) as Byte
    
    Dim MyVariable as Byte
    
    Config XX ...
    
    ' Funktionen überspringen
    Goto MyFunctions_runprog
    
    Function MyFunction(Byval parameter As Byte) as Byte
       ...
    End Function
    
    Test_procedure:
       ...
    Return
    
    MyFunctions_runprog:
    mfg

    edit:
    Achja man kompiliert dann immer nur die Hauptdatei, die Includes muss man da gar nicht anrühren. Weils mir aber auch immer wieder passiert, dass wenn ich eine Include bearbeitet habe und dann kompilieren will, das ich die Include kompiliere, was natürlich einen Haufen Fehler rauswirft. Das kann man umgehen, wenn man in jeder Include am Anfang "$nocompile" schreibt. Ist aber mehr was ergonomisches denn funktionelles

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.113
    Zitat Zitat von elkokiller
    muss ich das zweite Programm nicht auch compilieren?
    Nein, das wird mit dem "Hauptprogramm" compiliert.
    Man kann sogar die $nocompile Directive in den File schreiben, dann macht Bascom auch kein versehentliches compile.

    Denk nur dran, dass der Inhalt des include Files komplett an die Stelle kommt, wo der $include Befehl steht. D.h., wenn dort eine sub enthalten ist und die wird ganz am Anfang reingebracht, dann läuft dein Programm evtl. direkt da rein.

    Gruß

    Rolf

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    22.01.2006
    Ort
    Nidda
    Alter
    51
    Beiträge
    180
    na da muss ich noch ein bisschen experimentieren

Berechtigungen

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

Solar Speicher und Akkus Tests