Display zeigt komische Symbole an...

Hi,

Ich denke das Cassios Tipp mit den Stack Werten ausschlaggebend war.
Ist der Wert von dir jetzt ein Daumenwert gewesen?
Oder kann man das irgendwie berechnen?
Hat das negativen Einfluss wenn die zu hoch sind? Falls nicht, warum sind die dann nicht immer gleich auf Maximum?

Wenn der Speicher noch leer ist und man wenig Programm drin hat dann kann man da auch recht hohe Daumenwerte nehmen. Wenn dann aber einiges an Variablen dazukommt und das Programm wächst, dann muß man da auch schonmal ein wenig knobeln bis das paßt.

Ich hab bei meinem Magierstab einfach mal nen Stackdebugging von Bascom mit reingesetzt. Ist aber noch nicht geflasht. Mal sehen wann ich da Lust zu verspüre. Damit kann man dann genau sehen was verwendet wird und was noch frei ist. Das gibt dann einen guten Anhaltswert wo man noch optimieren kann. Der Debug-Befehl dafür frißt selber aber auch ein wenig SRAM.

Gruß
Dino
 
Genau,

Du hast halt eine begrenzte Menge SRAM (Arbeitsspeicher). Da müssen neben globalen Variablen, Variablen die an Subroutinen übergeben werden, Variablen die in Subroutinen verwendet werden, Variablen, die Bascom selbst benötigt/anlegt (gibts sowas?) und Rücksprungadressen abgespeichert werden können. Gerade bei letzteren kann der Bedarf regelrecht explodieren, wenn aus einer Routine heraus eine Andere aufgerufen wird - insbesonderebei rekursiver Programmierung..
In dieselbe Kategorie gehört auch das sichern der Rechenregister und des SREG in ISRs. Je nach Parameter bei der Festlegung des Interruptvektors (On Interrupt Nosave|Save|Saveall) werden da mehr oder weniger der 33 Register gesichert (Bei mir streikt gerade die Onlinehilfe - mal wieder), was allein da bis zu 33 Bytes Hardwarestack erfordert, dazu dann noch 2 bytes für das return (from Interrupt). Im Allgemeinen kümmert man sich ja da nicht selbst drum, auch wenn man es nach saveall könnte.

Wenn der Controller viel SRAM hat, und Du nicht viel brauchst, kannst Du den natürlich großzügig sinnlos verbraten... ansonsten mußt Du schauen, WO Du knausern kannst, und wo nicht...
 
Ich denke das Cassios Tipp mit den Stack Werten ausschlaggebend war.
Ist der Wert von dir jetzt ein Daumenwert gewesen?
Oder kann man das irgendwie berechnen?


Hallo Tenor!

Um die Angaben im Vorfeld einigermaßen berechnen zu können,
verweise ich nur zu gern auf den Beitrag von Markus! :flowers:

Besser kann es auch kein Lehrbuch erklären! :wink:


Grüße,
Cassio
 
Danke den Beitrag gebe ich mir morgen früh in einer ruhigen Minute, heute Abend
wird das nichts mehr ;)