Wenn für den Stack noch genug überbleibt, sicher
Hi!
Jaaaaaa!
Es funktioniert!
Ich hatte noch ne dumme IF drin, die die Berechnung nur dann startet, wenn sie auh gebraucht wird. Das habe ich zur Zeitersparnis gemacht.
naja, jetzt siehts auf jeden Fall gut aus.
hatte das problem, dass ein auslesen aus einem externen Ram nur ncoh Müll zu Tage förderte...
Aber jetzt gehts. warscheinlich, weil die Zähler nciht über 16 Zählen...
Naja, dann wurde die Variable zu groß, und dann gabs eine Zugriffsverletzung. So schätz ich mal.
Ncoh eine dumme Frage: Bascom legt ja seine Variablen im Ram ab. Auch Arrys. Dann kann ich beim M8 also locker ein kb an Variablen deklarieren, ohne die irgendwie auslagern zu müssen, gell?!
VLG Tobi
http://www.tobias-schlegel.de
"An AVR can solve (almost) every problem" - ts
Wenn für den Stack noch genug überbleibt, sicher
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hi!
Welcher den Soften oder den HW-Stack?
HW steht auf 64, der softe auf 32.
naja, ich weis nciht, aber er scheint mit der Berechnung schon ausgelastet zu sein...
VLG Tobi
http://www.tobias-schlegel.de
"An AVR can solve (almost) every problem" - ts
Das zählt zusammen.
https://www.roboternetz.de/wiki/pmwi...in.Bascomstack
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hi!
Ahja! Gute Wikiseite!
Kann man sich irgendwo anzeigen lassen, wie viel Platz man noch für den Stack hat?
Hm. ich glaube, ich mach den nochmal ein Bisschen größer. Obwohls jetzt eigentlich recht zufriedenstelend funktioniert!
VLG Tobi
http://www.tobias-schlegel.de
"An AVR can solve (almost) every problem" - ts
Danke, man hat sich bemüht.Zitat von tobimc
![]()
Ich mach die Stacks immer so groß wie irgend möglich.
In der RPT-File sagt der Bascom ja, wie viel SRAM er belegt. da leg ich ein paar zerquetschte drauf, und der Rest geht an den Stack.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
HI!
Ja, ich sehs! *good work!*
Wie erklärt man sich dasda:
?!--------------------------------------------------------------------------------
Warnings:
--------------------------------------------------------------------------------
HWSTACK not used
SWSTACK not used
FRAME not used
COUNTER2 not used
PWM2 not used
Woanders (weiter oben) aber:
...?Stack start : 45F hex
Stack size : 40 hex
S-Stacksize : 10 hex
S-Stackstart : 420 hex
Framesize : 20 hex
Framestart : 3FF hex
Naja, es scheint ja zu funzen.
Meckert Bascom nciht, wenn der Stack zu klein ist?
VLG Tobi
http://www.tobias-schlegel.de
"An AVR can solve (almost) every problem" - ts
dieses Geheimnis ist mir verborgen gebliebenZitat von tobimc
Nein. Stack wird erst im Laufen verbraucht, je nach call und return. Das Nachrechnen wäre eine Schweinearbeit und außerdem sehr theoretisch.Zitat von tobimc
Es gibt da im Help unter "STKCHECK" was, aber das war mir zu hoch.
Ich würde eher als letztes im SRAM ein fixes Feld definieren und gelegentlich prüfen. wenn es sich ändert, muss es der Stack niedergeschrieben haben, dann kann ich "Feuer" schreien.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hi!
>>dann kann ich "Feuer" schreien
Was schrei' ich dann? Wasser marsch?!
Naja, aber es wird nicht mehr Stack verbraucht, je öfter man einen call macht oder Funktionen aufruft?!
VLG Tobi
http://www.tobias-schlegel.de
"An AVR can solve (almost) every problem" - ts
Hauptsächlich dann, wenn die aufgerufene Funktion wiederum "Call" macht, usw. Und wenn dann ein Interrupt zuschlägt, verbraucht der mindestens 32 Byte HwStack zum Sichern der Register. Soft-Stack geht hauptsächlich drauf, wenn man viele Funktions-Argumente und/oder lokale Daten hat.
Und dann ist noch die Dunkelziffer, was der Bascom in seinen eigenen Routinen an fortlaufenden "Calls" macht.
Man kann das schon einigermaßen ausrechnen, aber mitten in der Programm entwicklung nervt das. Da mußt du richtig im Simulator steppen und mitzählen.
Wasser marsch ist gut, durch Feuchtigkeit kann man den Stackverbrauch schlagartig stoppen.![]()
Lesezeichen