大学生电子设计竞赛
直播中

高群

7年用户 219经验值
私信 关注
[问答]

请教关于瑞萨RX23T中断嵌套的几个问题?


瑞萨RX23T芯片的中断优先级是否为抢占式?在执行低优先级中断服务函数时若高优先级中断被触发,是否会打断低优先级中断的处理函数?谢谢

回帖(5)

高群

2018-7-23 03:38:23
<锟斤拷 wrote 2017/5/19>
好像是有15个优先级,可以中断嵌套,还可以设置一个fast interrupt并可以为其分配专用的寄存器以实现更快的中断相应
举报

高群

2018-7-23 03:49:37

In reply to 锟斤拷:
我现在SCI1是最高优先级,SCI2是14优先级,SCI2中断比较耗时.两个中断都开时SCI1接收数据时不时会漏数据,把SCI2关了之后就好了,请问这是什么情况?
举报

高群

2018-7-23 03:57:43
<锟斤拷 wrote 2017/5/20>
In reply to EnTaroYan:
没遇到过这个情况,不太清楚.接收需要时间,估计是你在这段时间内在SCI2中断中对SCI1存放接收数据的数组做更改了吧
举报

高群

2018-7-23 04:12:32

In reply to 锟斤拷:
SCI2中断没有对SCI1的接收缓冲区做更改,另外打开SCI2中断后,SCI1一直进入receive error中断时为什么呢
举报

高群

2018-7-23 04:21:54

要实现在低优先级中断运行时被高优先级打断,要先在低优先级中断服务程序的开始处开启中断允许“setpsw_i(); ”,并在结束禁止中断(clrpsw_i(); )
例:

/**********************************************************
uart5 receive interrupt service program
**********************************************************/
void IntSci5Rx(void)//receive interrupt program
/***************************************************************************
*Description:control interrupt
***************************************************************************/
{

setpsw_i(); /* interrupt enable */
// interrupt pending flag reset
ICU.IR[223].BIT.IR = 0; //RXI5

//servece program
un8_Uart5BufferData[u8_CommInOutByteCount].byte = SCI5.RDR;//receive data


//servece program end

clrpsw_i(); /* interrupt disable */
}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分