Du kannst keine neue Antwort schreiben
Seiten (2): [1] 2 »

Autor Thema 
manfredkraft

Anzündhilfe

Registriert seit: Jul 2005

Wohnort:

Verein:

Beiträge: 45

Status: Offline

Beitrag 108992 , Bascom: $INCLUDE-Anweisung [Alter Beitrag06. Dezember 2006 um 23:42]

[Melden] Profil von manfredkraft anzeigen    manfredkraft eine private Nachricht schicken   Besuche manfredkraft's Homepage    Mehr Beiträge von manfredkraft finden

Hallo,

ich habe eine Frage an Bascom - Spezialisten:

Ich will mittels $INCLUDE Programm-Teile auslagern, der Compiler findet jedoch die ausgelagerten Dateien nicht, obwohl diese im selben Verzeichnis liegen.
In der Dokumentation habe ich bisher keine Hinweise gefunden.

Kann jemand weiterhelfen?
Buchempfehlung / Online-Dokumentation: Empfehlungen jederzeit willkommen!!

Danke
Manfred

knurr
CharlyMai

Foren-Prediger


Administrator

CharlyMai

Registriert seit: Mär 2005

Wohnort: Fuhrberg

Verein: SOLARIS-RMB e.V. (P2;T2) / AGM / TRA#21598

Beiträge: 1976

Status: Offline

Beitrag 108996 [Alter Beitrag07. Dezember 2006 um 07:07]

[Melden] Profil von CharlyMai anzeigen    CharlyMai eine private Nachricht schicken   Besuche CharlyMai's Homepage    Mehr Beiträge von CharlyMai finden

Na, die Hilfe sagt doch alles, oder ???

INCLUDE:

Action
Includes an ASCII file in the program at the current position.


Syntax
$INCLUDE "file"


Remarks

File Name of the ASCII file, which must contain valid BASCOM statements.This option can be used if you make use of the same routines in many programs. You can write modules and include them into your program.If there are changes to make you only have to change the module file, not all your BASCOM programs.You can only include ASCII files!
Use $INC when you want to include binary files.


See Also
$INC


Example
$regfile = "m48def.dat"
$crystal = 4000000
$baud = 19200
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0

'--------------------------------------------------------------

Print "INCLUDE.BAS"
'Note that the file 123.bas contains an error
$include "123.bas" 'include file that prints Hello
Print "Back in INCLUDE.BAS"
End

viele Grüße
Pierre

•"Der Glaube an eine bestimmte Idee gibt dem Forscher den Rückhalt für seine Arbeit.
Ohne diesen Glauben wäre er verloren in einem Meer von Zweifeln und halbgültigen Beweisen." Konrad Zuse

•Konstruiere ein System, das selbst ein Irrer anwenden kann, und so wird es auch nur ein Irrer anwenden wollen.

SOLARIS-RMB e.V. AGM
manfredkraft

Anzündhilfe

Registriert seit: Jul 2005

Wohnort:

Verein:

Beiträge: 45

Status: Offline

Beitrag 108997 , BASCOM: $INCLUDE [Alter Beitrag07. Dezember 2006 um 07:47]

[Melden] Profil von manfredkraft anzeigen    manfredkraft eine private Nachricht schicken   Besuche manfredkraft's Homepage    Mehr Beiträge von manfredkraft finden

Guten Morgen Pierre,

Die Verwendung des Befehls innerhalb des Programms ist schon klar !

Wo müssen die Files abgespeichert sein, damit der Compiler die auch findet?

In der Online-Doku fand ich nichts zum Thema Konfiguration der Bascom-IDE und den dazugehörenden Verzeichnissen.

Meine Files liegen in einem Verzeichnis auf einem Memo-Stick und der Compiler findet die nicht!

Grüsse
Manfred

Mein Bsp.:
'----------------------------------------------------
$Include "RMB_HEADER" 'Def. der festgelegten Parameter/Anschlüsse
$include "RMB_DEF" 'Definitionen der LCD-Daten & Konstanten
$Include "RMB_INIT" 'init der LCD Anzeige
'-----------------------------------------------------
Beginn:
Lcd_init 'init der LCD Anzeige
call Lcd_load_customchars
Call Lcd_command(lcd_clear)
restore LCD_TEXT1
Call Lcd_ausgabe
End 'end program
'_-----------------------------------------------------
$include "RMB_SUB" 'im Prog verwendete SUB/Call's
$include "RMB_DATA" 'auszugebende Texte/Daten
CharlyMai

Foren-Prediger


Administrator

CharlyMai

Registriert seit: Mär 2005

Wohnort: Fuhrberg

Verein: SOLARIS-RMB e.V. (P2;T2) / AGM / TRA#21598

Beiträge: 1976

Status: Offline

Beitrag 108998 [Alter Beitrag07. Dezember 2006 um 07:50]

[Melden] Profil von CharlyMai anzeigen    CharlyMai eine private Nachricht schicken   Besuche CharlyMai's Homepage    Mehr Beiträge von CharlyMai finden

Im gleichen Verzeichnis wie die *.bas Datei für dein Hauptprogramm.

Vieleicht geht auch eine definierte Pfadangabe mit laufwerksbuchstaben... das weiss ich aber nicht genau.

viele Grüße
Pierre

•"Der Glaube an eine bestimmte Idee gibt dem Forscher den Rückhalt für seine Arbeit.
Ohne diesen Glauben wäre er verloren in einem Meer von Zweifeln und halbgültigen Beweisen." Konrad Zuse

•Konstruiere ein System, das selbst ein Irrer anwenden kann, und so wird es auch nur ein Irrer anwenden wollen.

SOLARIS-RMB e.V. AGM
manfredkraft

Anzündhilfe

Registriert seit: Jul 2005

Wohnort:

Verein:

Beiträge: 45

Status: Offline

Beitrag 109000 , Bascom:$include [Alter Beitrag07. Dezember 2006 um 09:27]

[Melden] Profil von manfredkraft anzeigen    manfredkraft eine private Nachricht schicken   Besuche manfredkraft's Homepage    Mehr Beiträge von manfredkraft finden

Sorry, it doesn't compile!

Habe eine mail an MCS-Bascom geschickt, vielleicht bekomme ich einen Hinweis.

mk
manfredkraft

Anzündhilfe

Registriert seit: Jul 2005

Wohnort:

Verein:

Beiträge: 45

Status: Offline

Beitrag 109011 , Bascom: $INCLUDE-Anweisung [Alter Beitrag07. Dezember 2006 um 14:37]

[Melden] Profil von manfredkraft anzeigen    manfredkraft eine private Nachricht schicken   Besuche manfredkraft's Homepage    Mehr Beiträge von manfredkraft finden

Hallo Pierre,

habe das Problem gelöst:

- in den einzubindenden Teilen darf kein "end" stehen
- Bedingte Übersetzung mit #if-#endif führt zu einer Reihe von unterschiedl. Fehlermeldungen,
die jedoch nicht auf den eigentl. Fehler hinweisen
- geschachtelte Includes - kein Problem (siehe ZIP-Anhang)

Leider muss ich jetzt im Falle der Jumber BR1- BR7 jeweils eigene Sourcen erstellen, wollte den einfacheren Weg gehen!?

Grüsse
MAnfred

Anhang: test-include.zip
AlexanderM

Epoxy-Meister

Registriert seit: Feb 2004

Wohnort: Düsseldorf

Verein: FAR

Beiträge: 238

Status: Offline

Beitrag 109012 [Alter Beitrag07. Dezember 2006 um 14:43]

[Melden] Profil von AlexanderM anzeigen    AlexanderM eine private Nachricht schicken   Besuche AlexanderM's Homepage    Mehr Beiträge von AlexanderM finden

Hallo manfredkraft,
mit welcher(n) Fehlermeldung(en) antwortet der Compiler denn genau? Mit Error 110, "Include file not found", oder kommt da (noch) etwas anderes? Kopiere doch einmal zum Test die Dateien in dasselbe Verzeichnis, in dem auch die anderen .bas Dateien liegen (d.h. die, die der Compiler findet). Kommt dann noch dieselbe Fehlermeldung?
Evtl. werden Verzeichnisse auf Wechselmedien (Stick) nicht richtig gefunden (auch wenn z.B. der Windows Explorer sie richtig anzeigt).
Hast Du unter der angemeldeten Kennung auch Schreib/Leserechte auf das Verzeichnis auf dem Stick?

CU.
Alexander
manfredkraft

Anzündhilfe

Registriert seit: Jul 2005

Wohnort:

Verein:

Beiträge: 45

Status: Offline

Beitrag 109014 , BASCOM: $INCLUDE [Alter Beitrag07. Dezember 2006 um 15:07]

[Melden] Profil von manfredkraft anzeigen    manfredkraft eine private Nachricht schicken   Besuche manfredkraft's Homepage    Mehr Beiträge von manfredkraft finden

Hallo Alexander,

wollte mit $INCLUDE's die Programme der einzelnen Komponenten des RMB-Systems (LCD, Schalter, Buzzer, ATMEGA interne, etc) einbinden bzw ausblenden und hatte deshalb meine bisherigen Routinen aufgeteilt in Header, Definitionen, Subroutines und Daten z. B. für die LCD-Anzeige. Diese sollten dann über Flags gesteuert mit der eigentlichen Anwendung mitübersetzt werden
Bp.:
#if CUSTOM_CHARS
$Include "Prog_Custom_Chars" ' Lade Custom-Characters in LCD '
#endif
Da ich die Includes aus einem bestehenden Programm herauskopiert habe, waren diese #IF's
noch im Code. Zusätzlich hatte sich noch ein 'end' eingeschmuggelt. Das war dem Compiler wohl zuviel!?

Das Problem ist nun z. T. gelöst, Testbeispiel siehe mein Beitrag oben.
#IF - #endif funktioniert wohl innerhalb $Includes nicht, jedenfalls habe noch keinen Weg gefunden.

Grüsse
Manfred
AlexanderM

Epoxy-Meister

Registriert seit: Feb 2004

Wohnort: Düsseldorf

Verein: FAR

Beiträge: 238

Status: Offline

Beitrag 109016 [Alter Beitrag07. Dezember 2006 um 15:11]

[Melden] Profil von AlexanderM anzeigen    AlexanderM eine private Nachricht schicken   Besuche AlexanderM's Homepage    Mehr Beiträge von AlexanderM finden

Hallo manfredkraft,
gut, daß es jetzt geht. Dann ist's aber komisch, daß der Compiler anmeckert, er hätte die Dateien nicht gefunden. Er sollte dann lieber z.B. sagen, daß er sie nicht interpretieren kann, o.ä.
Aber der BASCOM ist ja auch nur eine Maschine und Irren ist ja bekanntlich menschlich. big grin

Mit besten Grüssen,
Alexander
Oliver Arend

Administrator


Administrator

Oliver Arend

Registriert seit: Aug 2000

Wohnort: Great Falls, VA, USA

Verein: RMV/Solaris/AGM/TRA L1/TCV/MDRA/NOVAAR

Beiträge: 4337

Status: Offline

Beitrag 109030 [Alter Beitrag07. Dezember 2006 um 18:46]

[Melden] Profil von Oliver Arend anzeigen    Oliver Arend eine private Nachricht schicken   Oliver Arend besitzt keine Homepage    Mehr Beiträge von Oliver Arend finden

Handelt es sich bei dem $INCLUDE um eine einfache "Übernahme" des Codes, so als ob der Text statt des $INCLUDE im Hauptprogramm stehen würde? Das würde auf jeden Fall das Problem mit dem End erklären. Schließlich ist das ganze "Basic", von daher ist der Compiler wohl auch nicht der hellste ;-)

Oliver
Seiten (2): [1] 2 »
[Zurück zum Anfang]
Du kannst keine neue Antwort schreiben