Unterprogramm Bascom

Gast #149887
Lesenswert?

Hallo,

ich habe wieder mal ein kleines Problem!

weis zufällig wer,ob verschachtelte Unterprogramm Routinen in Bascom
generell möglich sind??

Denn ich hab von meinen Hauptprogramm eien Gosub Sprung in ein
Unterprogramm von dem ich nochmal in ein Unterprogramm springe.

Seit dieser Zeit habe ich hin und wieder Probleme mit den
Programmablauf und bin mir nocht ganz sicher ob das das Problem ist
oder ob das ein anderes Problem sein muß.

Gruß Thomas
Gast #149888
Lesenswert?

Es geht, hängt aber von der Größe des Stacks ab. Die kannst Du selber
einstellen, musst dabei aber auch an den restlichen Speicherbedarf
Deines Programmes und natürlich an das verfügbare RAM Deines
Controllers denken.
Gast #149889
Lesenswert?

Hi,

wie kann ich das verstehen?

Ich benutze den ATmega161 und
der Soft-Stack steht auf 8 und HW-Stack auf 32.

und welchen Ram meinst du? den S-Ram oder X-Ram der letztere steht
nähmlich auf None.

Entschuldige die dummen Fragen, ich habe leider keine Erfahrung mit
diesen einstellungen!

Gruß Thomas
Gast #149890
Lesenswert?

Na, sofern Du kein externes RAM an Deinen Mega161 angeschlossen hast,
ist es auch gut, daß der X-RAM-Wert auf 0 steht.
Das SRAM ist das im Controller eingebaute RAM.
Stackgrößen von 8 bzw. 32 erscheinen mir ein wenig klein. Vergrößere
diese Werte doch einmal auf -beispielsweise- das doppelte und lies'
Dir durch, was das BASCOM-Handbuch zum Thema zu sagen hat.
Gast #149891
Lesenswert?

Hallo,

mich mach eigentlich nur die Report-Datei etwas tutzig und zwar ganz
unten bei

Warnings:
------------------------------------------------------------------------ 
--------
HWSTACK                          not used
SWSTACK                          not used
FRAME                            not used
COMPARE0                         not used
COUNTER2                         not used
PWM2                             not used
BTSOLL3                          not used
BFSOLL3                          not used
STSOLL3                          not used
SFSOLL3                          not used

Ich habe schon verschiedene Einstellungen versucht, aber da ändert sich
nicht viel.
Ich verstehe nicht was das "not used" zu bedeuten hat?

Ich habe mal die ganze Datei angehängt.

Gruß Thomas
Angehängte Dateien:
Gast #149892
Lesenswert?

Das "not used" bedeutet wohl nur, daß niemand auf die Variablen dieses
Namens zugreift.

Etwas deutlich weiter oben in Deinem Report heisst es:

  Stack start  : 45F hex
  Stack size   : 60 hex
  S-Stacksize  : 20 hex
  S-Stackstart : 400 hex


Hast Du die Stackgrößen von 0x60 (96) und 0x20 (32) eingestellt?

Wenn nein - das könnten die erforderlichen Stackgrößen sein.
Gast #149893
Lesenswert?

Mein Tipp: stell erstmal alle die beiden Stacks auf 256 und den
Framesize auf 16 oder 32.
Wenn es dann läuft, entwickelst du zuende und setzt den Stack dann
später auf Werte, bei denen das Progr. noch läuft.
Je mehr Gosubs, Calls etc. desto mehr Stacks werden gebraucht.

zur Ausgangsfrage: ja, mehrere Gosubs ineinanderschachteln klappt
problemlos.

Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren