您好、欢迎来到现金彩票网!
当前位置:双彩网 > 向量指令 >

avr单片机汇编编程时建议在不使用的中断向量出放置中断返回指令R

发布时间:2019-06-04 02:56 来源:未知 编辑:admin

  avr单片机汇编编程时建议在不使用的中断向量出放置中断返回指令RETI,我不明白有什么意义

  avr单片机汇编编程时建议在不使用的中断向量出放置中断返回指令RETI,我不明白有什么意义

  这是原文:正式的系统应用中,为了提高系统的抗干扰能力,通常应该在中断向量的位置上放置一条中断返回指令RETI(对于中断向量占据两个字空间的处理器,应连续放置两条RETI)。对于使...

  这是原文:正式的系统应用中,为了提高系统的抗干扰能力,通常应该在中断向量的位置上放置一条中断返回指令RETI(对于中断向量占据两个字空间的处理器,应连续放置两条RETI)。对于使用了一部分中断的情况,则应在未使用的中断向量处放置这样的指令。在用汇编语言进行开发时应该注意这一点。

  AVR一旦执行中断返回RETI指令,MCU便开始了中断返回的过程。AVR在中断返回过程中,也是使用4个时钟周期自动按顺序完成以下任务:

  1 从栈顶弹出2个字节的数据,将这两个数据压入程序计数器PC中,并将SP寄存器中的堆栈指针加2。

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部1,比如你程序里开了不小心开了int0的上升沿中断,既然是不小心那就没有对应的中断处理代码,即中断向量表里int0没有正确的跳转代码。

  那如果发生int0上升沿 ,cpu就会去跳转到相应的中断向量表去执行,如果里面是reti的话就直接退出中断了,如果是jmp指令则跳到相应的中断处理程序,如果什么也不是,那就执行乱了。

  2,那是程序中的疏忽,小心一点就可以避免,但单片机执行环境有的很恶劣,有能就自己执行过去了。

  展开全部意思就是说,如果单片机在运行中被干扰了,程序跳转到你没有使用的中断向量的位置上。比如现在你写一个程序,外部中断0(int0)这个中断你并没有使用,实际上你根本就不用去理它了。比如单片机的复位地址为$000,中断0向量int0地址是$002,程序就是应该是这样

  <$000 ;复位

  正常情况下因为你没有使用中断0,它地址的$001,因为.ORG $02A已经跳过去了。又因为你没有使用这个中断,它是不会跑到$001的。但是实际上由于各种干扰的存在,就算你没有使用这个中断,也不可能说单片机不会被误触发进入中断0。这样被干扰后它进入了中断0地址$001开始执行,问题是你没有指令让它退出,它就直接往下跑,跑到$02A,如何就相当复位了。所以就算你没用它,也要在它的地址上放个退出指令,就算误触发,它进入中断马上就退出。不会让程序跑乱。

http://bluecaleel.com/xiangliangzhiling/103.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有