Gast
#86398
Ich habe hier einen ATtiny11.
ich wollte da so ein programm in assembler reinmachen.
das lief auch alles fehlerfrei.
jetzt habe ich wo an einer stelle noch eine prozedur eingefügt:
und zwar das hier:
sbis PORTB, 0
rjmp an1
cbi PORTB, 0
rjmp lab5;
an1:
sbi PORTB, 0
lab5:
(soll bei erreichen dieser befehle immer einen bestimmten ausgang von
low auf high und andersrum machen.)
das habe ich wo so reingemacht, daß es nur aufgerufen wird, wenn was
bestimmtes vorher passiert ist oder nicht.
ob diese befehle ausgeführt werden, wird mit befehlen wie brcs, sbis
und rjmp festgelegt.
tatsache ist jedoch, daß das da eingefügte an der stelle nicht korrekt
von dem microcontroller ausgeführt wird und nur müll bei rauskommt.
(die sprungmarken sind alle korrekt und nicht doppelt.)
und es kam auch müll raus, obwohl ich das da eingefügte schonmal an
anderen stellen wo ohne probleme benutzen konnte.
jetzt die frage:
kann da das mit dem 3-level deep hardware stack dran schuld sein?
wird denn auch für befehle wie brcs, sbis und rjmp der hardware stack
benutzt oder wird der hardware stack nur bei ganz anderen sachen
benutzt?
bei was würde denn sonst der hardware stack benutzt werden, also was
dürfte ich denn in diesem fall nicht mehr als "3 level deep" machen?