[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