mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Unterprogramm Bascom


Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.