[elektro] AVR interrupt segitseg kellene..
Info
info at kiralyelektronika.hu
Thu Apr 30 12:56:35 CEST 2009
Szia !
> elront. Nyilván globális változót nem rontok, az it rutin is pusall
> utasítással kezdo"dik, stack is elég mély. Nem akad ki a program,
> de hibás a tömörített adat, ha engedélyezve van az IT. Az IT rutin
> displayt órát stb kezel, elvileg ment, de azt hiszem valami egyéb
> proci regisztert elronthatok. Pl a Rampz-t. Segitsetek már, ki
> milyen regiszter mentését tartja szükségesnek még? Esetleg valaki
Mi az a "pushall" meg "rampz" ? Miylen nyelvet használsz ? :)
Megszakítsi rutinban következõket lehet/szoktam használni:
- no save: nem használsz olyan utasítást ami megváltoztatja
bármelyik regiszter tartalmát beleértve az SREG-et is
- status only: táblázatban kijegyzeteled mit használsz, és fenntartod
õket a saját regisztereiben, pl.:
in STempReg, SREG
xxx
out SREG, STempReg
reti
- asm default: szépen mindent elmentessz amit használsz az IT-ben, pl.:
push r16
in r16, SREG
push r16
push r15
push ...
xxx
pop ...
pop r15
pop r16
out SREG, r16
pop r16
reti
- heap: magasszintû programnyelvek külön kezelik a júzer vermét, de az
sreg-et a nyelv adottsága miatt nem kell menteni pl.:
st -Y, r16
st -Y, r15
xxx
ld r15, Y+
ld r16, Y+
reti
More information about the Elektro
mailing list