Unterprogramm Bascom

Gast #149887
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
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
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
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.