PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bascom-LIb mit Basic-Sub ?



funkheld
15.08.2010, 13:47
Möchte eine Lib erstellen mit Basic-Code.



sub test()
Basic-code
end sub


Funktioniert das?

gruss

Vitis
15.08.2010, 15:43
Du kannst externe Files mit den Subroutinen includen

Include "subprocedures.bas"

funkheld
15.08.2010, 19:53
Wenn ich aber Include-Bas nehme, dann wird ja der ganze Code mit reingepackt in die hex-datei. Bei einer Lib wird ja nur der Code reingepackt, der gebraucht wird, obwohl die Lib noch mehr Zeugs enthält, welches ich dann nicht brauche.

PicNick
16.08.2010, 08:20
Dieses selektive Verwenden der Library-routinen mach Bascom nur bei den LIB- oder LBX Libraries.
Du kannst in diesem Fall nur jede funktion, oder die, die sowieso irgendwie zusammengehören in eine eigene "include"-Datei geben, dann hast du den gleichen Effekt.
Diese Art "Library" machst du dann am besten als Directory mit den ganzen include-Files

Vitis
16.08.2010, 09:21
jep, so mach ichs auch, einen Unterordner "include",
der die "Treiber" für die Peripherie und Codesegmente
enthält.
Je Segment 2 Files, den Header mit den Deklarationen
wie Dim für die Variablen oder declare sub etc.
und eine Datei für den Codeabschnitt selbst.

Manche Bereiche werden ggf. für bestimmte Anwendungen
bei kompilieren ausgespart, das mach ich über

const compile=0

#if compile = 1
include irgendwas
#endif

Netzman
16.08.2010, 10:28
Libs sind in Assembler geschrieben, der grundsätzliche Aufbau ist in der mylib.lib beschrieben.

Ich mache das ähnlich wie von Vitis beschrieben, allerdings habe ich die Deklarationen & Funktionen in einer Datei und überspringe die Funktionen mit einem Goto (die einzige Situation in der ich das gebraucht habe :) ).
Conditional compile ist auch eine praktische Sache, verwende ich meistens bei den Debug-Abschnitten.
Bascom bietet auch noch Macros an, das sind Code-Blöcke, die an der Stelle einfach eingefügt werden, wenn man sie nicht verwendet werden sie auch nicht mitkompiliert. Werden sie allerdings an mehreren Stellen eingesetzt, wächst auch die Programmgröße.
Noch ein Hinweis am Rande, es empfiehlt sich bei den Variablen und Funktionen vor den Namen einen Präfix zu setzen.

Hier noch ein Beispiel: https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=50108

mfg