- 回答:
中断不出现有几个原因:
- CPU的I标记设置了吗?
- 目标中断设置了吗?
- CPU的中断级别是不是低于目标中断级别?
- 正在处理的中断的级别是不是高于目标中断级别?
- 目标中断向量是不是合适?
- 目标中断被激活了吗?
请告诉我同一级别的中断一起出现时,所用的优先顺序。
- 回答:
手册中中断章节提供中断向量号。当同一级别的向量同时出现,具有较小中断向量号的向量具有处理优先权。
从外部中断输入到中断处理执行需要多长时间?
- 回答:
CPU的中断在每个指令的最后循环周期中被接受。所以,中断的接收情况取决于被执行的指令。在中断被接受后,中断处理在中断处理时间过去后会被执行。
如需了解详细信息,请参阅每个产品的硬件手册。
当正在处理中断的时候产生另一个中断请求,请求可以保持吗?
- 回答:
当新产生的中断级别高于正在处理的中断的级别,中断程序会转入新的中断。当新产生中断的级别低于当前的中断,在当前执行的中断程序结束之后,会进入到新的中断。
在某种类型中断处理中生成的中断请求和正在执行的中断具有同样的优先顺序,是否会出现多重中断?
- 回答:
多重中断不会出现。新生成的中断请求会被保留。等正在处理的中断结束后,该请求会被接受(中断处理被执行)。
如果在中断请求之后又立即出现了更高级别的中断请求,该高级别中断请求将什么时候启动?
- 回答:
如果两个中断同时出现,高级别的中断会被处理。然而,一旦低级别中断进入处理时间,低级别的中断不会被接受,直到高级别的中断处理结束。
因此,高级别中断处理会在执行中断的处理时间结束后启动。
在重启之后是否可能立即出现中断?
- 回答:
在重启之后,中断标记符失效。所以,没有中断会出现。
如果等于或小于外部中断输入标准的脉冲被输入,是否会出现中断?
- 回答:
外部中断的输入标准是用脉宽规定的,当超过规定值的脉宽被输入后,中断处理的正常执行是可以保证的。
即使等于或小于外部中断输入标准宽度的脉冲被输入后,中断处理也可能出现。
然而,这种运行无法确保。因此,我们建议使用符合标准的脉冲。
在重启取消后,外部中断处理不稳定。
- 回答:
因为初始值还没有被定义,中断因子寄存器的EIRR需要被初始化。
除非下面的几项目按照如下顺序处理:1. ELVR (中断), 2. EIRR (因子)纯净 ,3. ENIR (中断激活) , 否则, 意外中断可能会出现。
当外部中断不够时,我该怎么做?
- 回答:
我们认为,你可以使用输入捕捉作为中断的代替(就输入捕捉而言,你可以通过ICS:EG.选择检测边缘)。
在中断程序中如何改变ILM中断级别。
- 回答:
改变输入程序中ILM级别的方法一般用来避免由于把ILM级别提高所生成的新的中断。要注意,当ILM级别在中断程序中被调低,正在执行的中断可能会出现多重中断。
当使用外部中断时,电平和边缘是可以选择的。请教我中断检测的采样方法(针对:MB90495G)
- 回答:
采样时钟是一种内部运算时钟。1)就电平检测而言,一个电平是由一次采样决定的。2)就边缘检测而言,边缘是由与最后值的比较决定的。
硬件手册中中断处理时间项规定了跃迁到中断处理的等待时间。然而,中断处理结束后,回到原状态的等待时间没有规定。
- 回答:
就中断返回时间而言,就是RETI指令执行时间。就中断跃迁而言,处理中断的时间是指在CPU指令处理中所需要跃迁到中断处理的时间。然而,就中断返回而言,无需特殊的时间,因为指令会继续被处理。
手册中中断章节的中断取样时间项中规定“中断请求取样时间是在具有最长执行周期的POPW RW0,...RW7指令(45个机器工作周期)启动后立即出现中断请求的最大等待时间值。教授我计算得出45个机器工作周期的表达式。
- 回答:
指令表说明POPW rlst周期数等于7 + 3 × (POP次数) + 2 × (POP最后寄存号)。
因此,RW0 到 RW7出现的POPW的周期数等于7 + 3 × 8 + 2 × 7 = 45 周期。
当看门狗定时器激活之后,是否能停止?
- 回答:
一旦当看门狗定时器激活之后,就只有通过重启才能停止。
我可以使用一个固定周期的中断(例如定时器)来执行看门狗定时器的清除处理吗?
- 回答:
我们不建议使用这种方法,因为当固定周期中断(如定时器)被使用来执行看门狗定时器的清零处理时,看门狗定时器效果会减少一半。
看门狗重启要多长时间?
- 回答:
看门狗重启的时间为三个周期。
看门狗定时器在单片机的停止模式中运行吗?
- 回答:
在单片机的停止模式中,看门狗停止运行,因为振荡停止。在回到停止模式之后,看门狗计数器被清零,看门狗继续运行。
我该怎样处理没有用过的中断向量?
- 回答:
我们建议把同一向量中未使用过的中断全部设置为重启向量或者设置一个处理程序来处理它们。
当没有定义的指令被执行时,会出现怎样的情况?
- 回答:
在FMC-16LX系列中,执行未定义的指令会生成异常中断。
通过将异常中断定义为复位中断,处理异常中断会产生复位。
在异常中断出现时,该怎样将PC值存到系统栈?
- 回答:
当没有定义的指令被执行时,会出现异常中断。含有未定义指令的程序地址会被存到系统堆栈。注意PC值的堆栈操作的方法和普通的中断有所不同。