在定时器中使用using 出现的问题?好无语
时间:10-02
整理:3721RD
点击:
在使用定时器2的时候(芯片为STC90C516RD+),设置为重载模式,发现定时器中断只运行一次,代码检查了N次确认无误。最后发现void t2_isr() interrupt 5 using 1的变量占了9字节,内存不足,后来优化代码后正常。可是为什么内存不足会影响定时器的中断呢?不懂,请教。
C51单片机的主程序入口从0000H到0002H程序跳转入口,汇编中可以看到程序第一句是个跳转 . 中断入口从跟随从0003H到000AH是外部中断0入口,0000BH到0012H是定时器0入口。都是8字节的中断入口,STC的单片机不止定时器T2,后面还有中断,所以9字节就占用了下一个中断的入口了,如果下一个中断没有定义,就可以占用
using 0 是第0组寄存器;内部RAM地址00H-07H,using 1 是第1组寄存器;内部RAM地址08H-0FH,1个8字节的寄存器能装9字节的内容吗?
你好!1个8字节的寄存器装不了9字节的内容,多出来的一个字节内容是丢失了吗?还是因为系统要为多出来的字节安排地址,而我又指定了USING 0,无法提供多余的存储地址,所以就相当于卡住了?我这样理解不知道对不对。
有人赐教吗?别都忙着赚钱啊。