Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Laderegler Test Tueftler Seite

 
Zeile 1: Zeile 1:
 
==Bascom Libraries==
 
==Bascom Libraries==
 +
 +
Im Installationsbereich von Bascom befinden sich eine Reihe Libraries mit den Endungen ".LBX" und ".LIB". Erstere sind gleichnamige, aber vorkompilierte Versionen von den ".LIB" Files. Dieses Vorkompilieren geschieht im LIB-Manager (Menu->Tools).
 +
 +
Aber auch die ".LBX" Files sind keine Object-Libraries, wie man sie von anderen Sprachen her kennt und die durch einen "Linker" zusammengefügt werden. Beides sind normale Textfiles, die erst beim Kompilieren des Basic-Hauptprogrammes tatächlich in Maschinencode übersetzt werden.
 +
 +
Deshalb ist es Bascom auch ziemlich egal, ob man bei der $lib Anweisung "lib.lib" oder "lib.lbx" angibt, es ist im Grunde die selbe Arbeit
 +
 +
Warum nun überhaupt ".LBX" ?
 +
 +
Durch das Vorkompilieren werden die Libraries doch einigermassen unleserlich, und wenn von einer Library die ".LIB" Version nicht da ist, will man den Code wohl nicht preisgeben.
 +
 +
Beide Versionen sind Sammlungen von "Bausteinen", die Bascom nur in das Benutzer-Programm einbindet, wenn sie tatsächlich gebraucht werden. Diese Bausteine sehen folgendermassen aus:
 +
 +
[Baustein_Name]
 +
Baustein_Name:
 +
.... Assembler-Answeisungen...
 +
RET
 +
[end]
 +
 +
===Beispiel===
 +
 +
Man erzeugt mit Notepad oder einem anderen Editor eine Datei "Testlib.LIB" im Library-Verzeichnis von Bascom (muß man im Installationsverzeichnis nachsehen, wo das ist)
 +
 +
[Meine_Funktion]
 +
Meine_Funktion:
 +
  RET
 +
[end]
 +
(SAVE)
 +
 +
Im Hauptprogramm (in BasCom) schreibt man nun
 +
 +
$regfile = "m32def.dat"
 +
$crystal = .....
 +
$lib "testlib.lib"
 +
 +
$external Meine_Funktion
 +
Declare Sub Meine_Funktion()
 +
CALL Meine_Funktion
 +
 +
wird die Funktion an die nächste freie Stelle in den Maschinen-Code eingefügt und bei "Call" aufgerufen. 
 +
 +
Man braucht jetzt nur noch irgendetwas Sinnvolles in die Funktion reinzuschreiben.
 +
 +
 +
  
 
==Siehe auch==
 
==Siehe auch==
 
* [[Bascom]]
 
* [[Bascom]]
* [[Bascom Libraries]]
+
* [[Bascom Inside]]
 
[[Kategorie:Microcontroller]]
 
[[Kategorie:Microcontroller]]
 
[[Kategorie:Grundlagen]]
 
[[Kategorie:Grundlagen]]
 
[[Kategorie:Software]]
 
[[Kategorie:Software]]

Version vom 3. Juni 2006, 10:53 Uhr

Bascom Libraries

Im Installationsbereich von Bascom befinden sich eine Reihe Libraries mit den Endungen ".LBX" und ".LIB". Erstere sind gleichnamige, aber vorkompilierte Versionen von den ".LIB" Files. Dieses Vorkompilieren geschieht im LIB-Manager (Menu->Tools).

Aber auch die ".LBX" Files sind keine Object-Libraries, wie man sie von anderen Sprachen her kennt und die durch einen "Linker" zusammengefügt werden. Beides sind normale Textfiles, die erst beim Kompilieren des Basic-Hauptprogrammes tatächlich in Maschinencode übersetzt werden.

Deshalb ist es Bascom auch ziemlich egal, ob man bei der $lib Anweisung "lib.lib" oder "lib.lbx" angibt, es ist im Grunde die selbe Arbeit

Warum nun überhaupt ".LBX" ?

Durch das Vorkompilieren werden die Libraries doch einigermassen unleserlich, und wenn von einer Library die ".LIB" Version nicht da ist, will man den Code wohl nicht preisgeben.

Beide Versionen sind Sammlungen von "Bausteinen", die Bascom nur in das Benutzer-Programm einbindet, wenn sie tatsächlich gebraucht werden. Diese Bausteine sehen folgendermassen aus:

[Baustein_Name]
Baustein_Name:
.... Assembler-Answeisungen...
RET
[end]

Beispiel

Man erzeugt mit Notepad oder einem anderen Editor eine Datei "Testlib.LIB" im Library-Verzeichnis von Bascom (muß man im Installationsverzeichnis nachsehen, wo das ist)

[Meine_Funktion]
Meine_Funktion:
 RET
[end]

(SAVE)

Im Hauptprogramm (in BasCom) schreibt man nun

$regfile = "m32def.dat"
$crystal = .....
$lib "testlib.lib"
$external Meine_Funktion
Declare Sub Meine_Funktion()
CALL Meine_Funktion

wird die Funktion an die nächste freie Stelle in den Maschinen-Code eingefügt und bei "Call" aufgerufen.

Man braucht jetzt nur noch irgendetwas Sinnvolles in die Funktion reinzuschreiben.



Siehe auch


LiFePO4 Speicher Test