Läuft dir da der Stack über?
Wie gross sind denn HWStack, SoftStack und Framesize?
Nachtrag: Häng mal die gesamte .bas + .cfg an, so dass man die mal durch den Simulator jagen kann.
Hallo, wer kann mir bei folgendem Problem helfen?
Programm aus Bascom
Problem beim Rücksprung aus einer Sub
Klassischer Programmaufbau
$regfile '...für ATMEGA 8
'...Initialisierung diverser Merker, Vars ect.
'...
'unter anderem wird hier ein Motor ein eine Grundposition
'gefahren
while "motor nicht in grundposition"
motor_fahren = on
wend
motor_fahren = off
'Hauptprogrammschleife
-------------------------------------------------------------------
do
debounce taster, 0, sub1
loop
end
sub1
i2cstart 'start command für I2C
i2cwrite &h04 'ansteuerung
i2cwrite &h00 'ansteuerung
i2cwrite &h00 'ansteuerung
i2cstop 'stop für I2C bus
waitms 100 'wartezeit min 32 für beendigung der i2c-kommunikation
call sub2
end sub 1
sub2
'irgendwelche befehle
call sub3
end sub2
sub3
...z.b. I2C um eine gegenoeration vom sub1 durchzuführen
end sub3
----------------------------------------------------------------
Alle einzelnen Subs funktionieren, nur in der Kombination habe ich das Problem, dass der MS nicht zurückspringt, es scheint fasst so als würde er von ganz von vorne anfangen.
Ich könnte fluchen da ich schon Tage mit diesem Problem verbracht habe.
Ich möchte eigentlich vermeiden alles in eine Routine zu packen, da es ja eigentlich für solche Zwecke Subs schreibt.
Benötige also dringend Hilfe.
VD
Läuft dir da der Stack über?
Wie gross sind denn HWStack, SoftStack und Framesize?
Nachtrag: Häng mal die gesamte .bas + .cfg an, so dass man die mal durch den Simulator jagen kann.
#ifndef MfG
#define MfG
Hallo,
das Programm ist mal beigefügt.
... Beitrag schon Geschichte, unten geht es weiter !!
Ich habe dir das Prog mal als PN geschickt. Wobei ich nur erstmal die Calls gegen Gosubs getauscht habe. Ob, die Subs sich jedesmal wieder gegenseitig aufrufen und so der Stapelspeicher überläuft habe ich nicht getestet. Könnte aber daran liegen.
Wenn das Herz involviert ist, steht die Logik außen vor! \/
Hallo liebe Helfenden,
mein Tag war ziemlich bes......., letztlich haben ich nur eine Erkenntnis mehr gewonnen.
Wie es scheint hat der MC Probleme bei der Ausführung (mehrfachen) der I2C-Befehle.
Im angefügten Programm ist das Problem z.B. das, dass das Prog die SUB Arm_zuruckfahren ausführt, dann aber nicht die SUB Wagen_hoch und zur SUB Warten kommt das Prog gar nicht.
Ich haben auf einen Speicherüberlauf getippt aber die Stacks sind riesig, Gesamtspeicher des MC ist auch nicht ausgelastet, ich bin völlig ratlos.
Evtl. fällt Euch ja etwas ein.
Vorab vielen Dank und ein schönes Wochenende
Andreas
File: http://www.weber-textagentur.de/file
probiers mal ohne die i2c-lib, dann per soft-i2c, pins definieren etc.
Vor den Erfolg haben die Götter den Schweiß gesetzt
Lesezeichen