这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 请问:I_ISPR中是否有可能同时有几位被置成1?

共3条 1/1 1 跳转至

请问:I_ISPR中是否有可能同时有几位被置成1?

菜鸟
2006-07-16 17:56:49     打赏
也就是说同时有几个中断发生了,比如ADC,RTC的中断都发生了,导致I_ISPR的最低两位都置1了。 [align=right][color=#000066][此贴子已经被作者于2006-7-16 10:05:24编辑过][/color][/align]



关键词: 请问     是否     有可能     时有     几位     置成    

菜鸟
2006-07-16 18:49:00     打赏
2楼

感觉如果I_ISPR中同时有几个bit被置1,那么采用非矢量中断模式来裁决哪个中断发生,看s3c44box的Datasheet推荐的代码,好像是优先级最低(ADC)的那个反而具有最高的优先级。

代码如下:

IsrIRQ
sub sp,sp,#4 ; reserved for PC
stmfd sp!,{r8-r9}
ldr r9,=I_ISPR
ldr r9,[r9]
mov r8,#0x0
0 movs r9,r9,lsr #1
bcs %F1
add r8,r8,#4
b %B0
1 ldr r9,=HandleADC ; 以ADC为基址
add r9,r9,r8
ldr r9,[r9]
str r9,[sp,#8]
ldmfd sp!,{r8-r9,pc}
. . . . . .
HandleADC # 4
HandleRTC # 4
HandleUTXD1 # 4
HandleUTXD0 # 4
. . . . . .
HandleEINT3 # 4
HandleEINT2 # 4
HandleEINT1 # 4
HandleEINT0 # 4 ; 0xc1(c7)fff84

[align=right][color=#000066][此贴子已经被作者于2006-7-16 10:49:13编辑过][/color][/align]

菜鸟
2006-07-16 21:48:00     打赏
3楼
呵呵,多谢,用户手册我还是看的不够仔细。

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]