Forum: Mikrocontroller und Digitale Elektronik Bascom Unterprogramm Compilieren


von Jodi (Gast)


Lesenswert?

Hallo,

habe mal wieder ein Problem mit Bascom. Ich verwende ein Main-Programm 
und darunter verschiedene Unterprogramme (z.B. UP Handfunktion). Nun 
wird bei den verschiedenen Unterprogrammen etwas im LCD Display 
angezeigt. Ich möchte nun mit der #If Routine einen Debug-Modus 
einführen und somit auf den LCD Display entsprechend andere Dinge 
anzeigen lassen. Ein Beispiel:

Im Normalbetrieb wird bei Handbetrieb auf dem Display " Handbetrieb EIN" 
ausgegeben. Hinter diesem Handbetrieb steckt aber im Programm eine 
Betriebsart, die als Zahl behandelt wird. Nun möchte ich, wenn der 
Debug-Modus bei der Compilierung angewählt ist, dass im Display bei 
Handfunktion zu lesen steht "Betriebsart = 105".

So, ich habe bereits eine Variable angelegt mit Const Debuggen = 0/1. 
Mit #If Debuggen = 0 frage ich das ganze ab und funktioniert auch. Nur 
im Unterprogramm Handbetrieb, kann ich die Konstante Debuggen nicht 
abfragen, da sie dort nicht bekannt ist. Auch eine Übergabe mit "Declare 
Sub Handeingabe (const Debuggen as byte)" funktioniert nicht. Was muss 
ich tun, damit diese Konstante Global verfügbar ist?

Danke für eure Hilfe und ich hoffe ich konnte mein Problem einigermaßen 
erläutern.

Gruß Jodi

von Hannes L. (hannes)


Lesenswert?

Du kannst die mit Const definierten Konstanten wie Variablen auswerten 
(aber nicht ändern).

...

von mue-c (Gast)


Lesenswert?

Die Konstanten sind immer global verfügbar, aber erst ab der 
Programmzeile, in der du sie definierst.
Du hast wahrscheinlich die Definition des Unterprogramms in deinem Code 
vor der Definition der Konstanten stehen. BASCOM ist da etwas 
empfindlich. Du kannst nichts benutzen, bevor es definiert wurde.

von Jodi (Gast)


Lesenswert?

@mue-c

VIELEN DANK!!! Das war die Lösung, ich habe das $include VOR der Const 
Definition stehen gehabt. Nun funktioniert es! Tausend Dank!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.