-
-
Erfahrener Benutzer
Roboter Experte
Naja, ich kenn mich in Bascom net aus... Und die Zeit hab ich auch nicht, das jetzt zu druchstöbern, aber check mal, ob alle Rutinen die aufgerufen werden, auch einmal enden, und mit return dorthin zurückkehren, von wo sie aufgerufen worden sind.
Nochn ne kurze Verständisfrage zu Bascom: ist CALL = RCALL und GOTO = RJMP?
Falls ja, musst du am Ende aller Funktionen, die mit CALL aufgerufen worden sind, ein Return schreiben, und bei denen, die mit Goto aufgerufen worden sind, entweder ein Return (dann gehen sie nicht dorthin zurück, wo goto stand, sondern dorthin wo die Funktion mit dem Goto aufgerufen worden ist), oder ein goto, damit sie dorthin zurückkehren, wo der letzte goto stand, aber dann ist es gleich besser, diese zwei gotos mit einem CALL und RET zu ersetzen. Generell gilt: RJMP/GOTO + RET nur für Fallunterscheidung, für Subrutinen immer RCALL/CALL + RET.
Bsp:
R1:
...
CALL R2
...
R2:
...
GOTO R3
...
RET --> zurück zu R1, wird nicht erreicht
R3:
...
RET --> wir sind in R1
R1:
...
CALL R2
...
R2:
...
CALL R3
...
RET --> zurück nach R1
R3:
...
RET --> wir sind in R2
War das so eingermaßen vertsändlich? 
MfG
pongi
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen