Autor | Thema |
---|---|
manfredkraft
Anzündhilfe Registriert seit: Jul 2005 Wohnort: Verein: Beiträge: 45 Status: Offline |
Beitrag 108992
, Bascom: $INCLUDE-Anweisung
[06. Dezember 2006 um 23:42]
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 |
CharlyMai
Foren-Prediger
Registriert seit: Mär 2005 Wohnort: Fuhrberg Verein: SOLARIS-RMB e.V. (P2;T2) / AGM / TRA#21598 Beiträge: 1977 Status: Offline |
Beitrag 108996
[07. Dezember 2006 um 07:07]
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
[07. Dezember 2006 um 07:47]
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
Registriert seit: Mär 2005 Wohnort: Fuhrberg Verein: SOLARIS-RMB e.V. (P2;T2) / AGM / TRA#21598 Beiträge: 1977 Status: Offline |
Beitrag 108998
[07. Dezember 2006 um 07:50]
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
[07. Dezember 2006 um 09:27]
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
[07. Dezember 2006 um 14:37]
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
[07. Dezember 2006 um 14:43]
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
[07. Dezember 2006 um 15:07]
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
[07. Dezember 2006 um 15:11]
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. Mit besten Grüssen, Alexander |
Oliver Arend
Administrator
Registriert seit: Aug 2000 Wohnort: Great Falls, VA, USA Verein: RMV/Solaris/AGM/TRA L1/TCV/MDRA/NOVAAR Beiträge: 8351 Status: Offline |
Beitrag 109030
[07. Dezember 2006 um 18:46]
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 |