AVR单片机--中断服务程序能写多大

2019-07-16 07:16发布

在执行中断的时候,是直接跳转到中断向量的地址那里,每个中断向量的地址都是紧接着的,中断服务程序的代码最大可以写到多大?是不是下一个中断向量地址的前面的一位?如果写到了后面会发生什么情况?编译器发生错误还是程序跑飞了?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
东风恶
1楼-- · 2019-07-16 07:58
 精彩回答 2  元偷偷看……
鼻子抽筋
2楼-- · 2019-07-16 08:05
就是说这个中断服务程序理论上是跟你定义的函数一样的,可以写满整个flash空间,这里问题就出现了,如果只是有一次中断的触发,那么MCU将执行完这个服务程序,但是如果中断是连续触发的,那么当MCU在响应中断的时候(也就是正在执行中断服务代码),再一次响应中断,再次去执行这段代码,那么问题就是出现了,那岂不是中断自己把自己中断了?怎么解释这个问题的呢?
东风恶
3楼-- · 2019-07-16 11:05
有的单片机支持中断分级,可以根据中断的级别高中断级的中断可以打断低中断级的中断服务程序,但是AVR不支持中断分级,也就是说AVR默认在执行中断服务程序的时候是不可以被别的中断打断的。除非你在程序中人为开放中断允许位让其它中断响应。

一周热门 更多>