Ich habe ein ziemliches Programm-Monster. Die Werte sind geschätzt (wahrscheinlich zu groß), aber ich hab keine Probleme
Stacksize=128 HW
Framesize=16 Frame
Sstack=256 Soft
versuch's mal damit, bis dir einer bessere Zahlen liefert.
Hallo zusammen,
wer kann mit Hilfen oder Tips geben:
Mein Programm funktioniert tadellos solange kein Interrupt aufgerufen wird. Es handelt sich dabei um INT0 (ich glaube PIN PD2).
Die Interruptroutine wird angesprungen, dann aber wird vermutlich ein Stacküberlauf produziert: anschließend haben einige globale Variablen einen seltsamen Inhalt -> wird wohl überschrieben.
Habe mit $HWStack schon experimentiert. "Stcheck" blick ich nicht ganz.
Wie kann ich überprüfen wie ich $HWStack, $SWStack und $Frame richtig setzen muss?
Gibt es ein Beispiel dazu wie ich ermitteln kann wie ich die Konstanten setzen muss? Die Onlinehilfe zu Bascom hilft mir nicht richtig weiter.
Danke!
Ich habe ein ziemliches Programm-Monster. Die Werte sind geschätzt (wahrscheinlich zu groß), aber ich hab keine Probleme
Stacksize=128 HW
Framesize=16 Frame
Sstack=256 Soft
versuch's mal damit, bis dir einer bessere Zahlen liefert.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hallo.
Warum werden eigentlich 2 Stacks verwendet?Stacksize=128 HW
Framesize=16 Frame
Sstack=256 Soft
Und wichtiger, wann wird welcher verwendet.
Bei Framesize herrscht bei mir völlige Dunkelheit was das Wissen um die Funktion angeht. Was sind Frames und wofür werden sie verwendet?
Kann jemand Licht ins Dunkel bringen?
Ciao,
Werner
Die Sache mit dem Stack ist prinzipiell schon klar ?
bei jedem "CALL" oder interrupt wird der Stackpointer dekrementiert und die return-addresse reingeschrieben (PUSH). Bei return holt er sich das und inkrementiert den stackpointer wieder (POP)
Das wär mal der HW-Stack.
Den Soft-Stack braucht der Bascom, um "local" daten wo hinzuschreiben und für einen Call die Parameter abzulegen. Sonst funktioniert das Ähnlich.
FRAME braucht er temporär für div. daten-konversionen.
Also je Call und interrupt, desto HW-Stack
je call-parameter und local data, desto SW-Stack
je string<->binär conversion, desto Frame
logo ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hallo PicNick,
> Also je Call und interrupt, desto HW-Stack
> je call-parameter und local data, desto SW-Stack
> je string<->binär conversion, desto Frame
Thanks!
Ciao,
Werner
Steht das irgendwo in der Bascom Help und ich war nur zu blöd zum finden?
Schon. Aber ich hätt das SO nicht gesagtZitat von Werner_Just
(mach dir nix draus, es ist übungssache das zu finden, was man sucht)
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Hallo PicNick,
> es ist übungssache das zu finden,
leider wahr!
'Options Compiler Chip' und keinerlei Link bei $Framesize, $HWStacksize ... grummel
Search IDE, IDE Options, wie im Text erwähnt -> auch kein Result in Options Comp...
'Übungssache' trifft das Auffinden von Informationen in der Bascom Help wohl am besten
Ciao,
Werner
Ich hab bei "Help" mal alles angeschaut, was mit "ST" beginnt und irgendwie nach Stack klingt. Bin dann auf "STCHECK" gestoßen.
Allerdings lese ich gerne, oft und wiederholt Dinge nach, auch wenn sie mir klar scheinen und ich sie mir garnicht merke. Aber dadurch kriegt man "Hyperlinks" im Hinterkopf zusammen ("da war doch was")
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Lesezeichen