以下资料参考马潮老师的中文手册,由微雪电子整理并发布,转载请注明出处:www.waveshare.net,否则追究相应责任!
堆栈指针主要用来保存临时数据、局部变量和中断/ 子程序的返回地址。堆栈指针总是指 向堆栈的顶部。要注意AVR 的堆栈是向下生长的,即新数据推入堆栈时,堆栈指针的数 值将减小。在中断/ 子程序后从堆栈读程序计数器,未使用位( 位15) 应屏蔽。 堆栈指针指向数据SRAM 堆栈区。在此聚集了子程序堆栈和中断堆栈。调用子程序和使 能中断之前必须定义堆栈空间,且堆栈指针必须指向高于0x60 的地址空间。使用PUSH 指令将数据推入堆栈时指针减一;而子程序或中断返回地址推入堆栈时指针将减二。使 用POP 指令将数据弹出堆栈时,堆栈指针加一;而用RET 或RETI 指令从子程序或中断 返回时堆栈指针加二。 AVR的堆栈指针由I/O空间中的两个8位寄存器实现。实际使用的位数与具体器件有关。请 注意某些AVR 器件的数据区太小,用SPL 就足够了。此时将不给出SPH 寄存器。 |
相关AVR资料说明 |
可作为如下AVR的参考资料: ATtiny13 ATtiny24 ATtiny44 ATtiny84 ATtiny2313 ATtiny26 ATmega48 ATmega88 ATmega168 ATmega8 ATmega16 ATmega32 ATmega64 ATmega128 ATmega162 ATmega169 ATmega169P ATmega8515 ATmega8535
相关AVR型号资料 |
ATtiny13 | ATtiny24 | ATtiny44 | ATtiny84 | ATtiny26 | ATtiny2313 |
ATmega48 | ATmega88 | ATmega168 | ATmega8 | ATmega16 | ATmega32 |
ATmega64 | ATmega128 | ATmega162 | ATmega169 | ATmega8515 | ATmega8535 |
ATmega64 堆栈指针
——