我要啦免费统计 中颖电子欢迎您!!!!FAQ浏览

订阅邮件 退订


 

  
您的位置-->首页-->FAQ--> 中断
Question 1
I/O作中断使用时,当某中断输入端被触发且保持在低电位,问其它I/O中断输入端可否有效?
Question 2
为什么SH6XXX系列芯片在使用断点运行的方式仿真时,第一次可以正常跑到断点位置,而第二次则不行?
Question 3
中断响应查询的先后次序如何?


Question 1
I/O作中断使用时,当某中断输入端被触发且保持在低电位,问其它I/O中断输入端可否有效?
Answer
没有效。被触发的I/O中断输入端需释放回复为高电位后,其它I/O中断才有效。
Question 2
为什么SH6XXX系列芯片在使用断点运行的方式仿真时,第一次可以正常跑到断点位置,而第二次则不行?
Answer
这是因为SH6XXX仿真时,WDT一直在运行,当仿真系统运行到断点位置停下来,WDT仍然在运行,如果停止时间超过了WDT溢出时间,系统就会被WDT复位。PC值会被归零,这样第二次运行断点仿真就不能正常运行到断点位置。可以在断点仿真的时候,关闭EVB板上的WDT开关,暂时关闭WDT功能,就可以自由使用断点仿真功能。
Question 3
中断响应查询的先后次序如何?
Answer
1. 假设EXT_INT对应 $00[3],TM0INT对应 $00[2],TIM1INT对应 $00[1],PORTINT对应 $00[0](上面假设只是方便说明问题,实际对应关系需根据不同产品的定义,不能一盖而论),只有当对应寄存器打开时,中断才会响应。

2. 当多个中断同时发生时,中断优先级顺序是:
EXT_INT ($00[3] = 1) >TM0INT ($00[2] = 1)>TM1INT ($00[1] = 1) > PORTINT ( $00[0]=1 )。

3. 如果中断发生时,对应的中断EN($00)寄存器不开,则不响应该中断,但是对应中断标志寄存器等于1:EXTINT发生时,$01[3]=1;TM0INT发生时,$01[2]=1;TM1INT发生时,$01[1]=1; PORTINT发生时,$01[0]=1。

例: 假定四个中断EN同时打开($00=F). 接着EXT_INT和PORTINT同时发生了.然后在中断响应过程中,TM1INT中断也发生了.

响应情况: 
当EXT_INT和PORTINT同时发生,根据中断优先级顺序,CPU首先响应EXT_INT: 硬件在收到中断请求后,首先关闭所有中断EN信号($00=0),然后选择外部中断为响应中断,将程序地址转到EXT_INT中断服务子程序入口地址001。当在执行中断服务子程序时,TM1INT中断发生了,但是由于$00=0不产生中断。当执行完中断服务子程序后,可以通过两种方式来判断:
1. 查询方式,通过查询中断标志位寄存器($01)是否为1,如果为1则跳转到该中断对应服务子程序。
2. 中断方式
 A). 在退出中断服务子程序后,首先将前一次中断对应的中断标志寄存器清0,本例中是将$01[3]清0。
B). 打开中断EN信号,由于前面TM1INT和PORTINT都有发生过,此时根据中断优先级顺序,CPU首先响应TM1INT 中断,首先关闭所有中断EN信号 ($00=0),然后程序地址转到TM1INT中断服务子程序入口地址003。
C). 当完成TM1INT中断服务子程序后,再打开中断EN ($00),此时CPU响应最后一个中断PORTINT,将程序地址转到   PORTINT中断服务子程序入口地址004。
版权所有:中颖电子有限公司
Copyright 2005 SINOWEALTH Electronic Ltd. All RIGHTS RESERVED