Hakllo marco78,
probiers doch einfach mal aus !
So ist die Frage gleich geklärt. Sag mir was du rausgefunden hast !Code:gosub one: gosub two: . . . . gosub ten: sub one : set Port waitms 500 reset port waitms 500 return sub
gruß Bernd (Gandalf)
Ich habe ein Programm, das schon deutlich gewachsen ist.
Aber ab und zu kommt es zu Abstürzen. Der M16 führt ein Reset aus (Watchdog habe ich nicht eingestellt, macht Bascom das evtl von sich aus?)
So wie es aussieht stürzt das Programm ab, wenn ich aus einem Label mit Return zurück springen will.
Ist GOSUB allgemein auf eine bestimmte "Tiefe" begrenzt?
Wobei ich grade mal max. 5 GOSUB hinter mir habe an der Stelle. Der C16 kommte 8 glaube ich
Eingestellt habe ich bis jetzt:
Framesize: 48
SWStack: 32
HWStack: 64
Und das sollte ja schon mehr als genug sein, oder?
Gibt es irgendwie ein Anhalt für die Werte?
Hakllo marco78,
probiers doch einfach mal aus !
So ist die Frage gleich geklärt. Sag mir was du rausgefunden hast !Code:gosub one: gosub two: . . . . gosub ten: sub one : set Port waitms 500 reset port waitms 500 return sub
gruß Bernd (Gandalf)
Die gosubs beanspruchen stack - liegt es gfs daran =
Die Anzahl der GOSUB sind im Prizip nicht begrenzt, hängt aber vom verfügbaren HW-Stack Speicherplatz ab (pro GOSUB 2 Bytes).
Schau mal in der Hilfe unter $DBG nach, dort sind die verschiedenen Stacks beschrieben, mit $DBG hast Du auch die Möglichkeit, den echten Bedarf ermitteln.
Viele Grüße
Josef
-------------------------------------------------------------------------------------
DOS-File System für BASCOM-AVR auf http://members.aon.at/voegel
Danke, das war die Info, die ich brauchte.Zitat von oe9vfj
Hab ich schon gescht. Aber ich habe diesen Stack Analyser nicht gefunden, der mir die Ergebnisse anzeigen würde.Zitat von oe9vf
Da ich aber die Stacks schon deutlich höher gesetzt haben, wird es wohl ein anderes Problem sein. Schade das niemand weiss, wie der Real Hardware Simulator funktioniert
Ich vermute mal ein gosub, was nicht mir return enden lösst den Fehler aus. Irgendwo könnte dann an Stelle von return goto stehen um zurück zu führen.
Und beim nächsten Return weiss der Stack nicht so wirklich, welchen Wert er übernehmen muss und gibt auf
Damit muss ich Gast auch nicht mehr erzählen, was das Ergebniss war![]()
Lesezeichen