PIE模块有这么多的外设需要管理,就必定由相应的响应顺序和寄存器需要配置。
在PIE 模块内每组中断都有相应的中断标志位(PIEIFRx)和使能位(PIE-IERx.y) ,除此之外,每组PIE中断(INT1~INT12)有一个响应标志位(PIEACK)。图6.5给出了PIEIFR和PIEIER不同设置时的PIE硬件的操作流程。
一旦PIE控制器有中断产生,相应的中断标志位(PIEIFRx.y)将置1。如果相应的PIE中断使能位也置1,则PIE将检查相应的PIEACKx以确定CPU是否准备响应该中断。如果相应的PIEACKx位清零,PIE向CPU申请中断;如果PIEACKx置1,PIE将等待到相应的PIEACKx清零才向CPU申请中断。PIE通过对PIEACKx的位控制来控制每1组中只有1个中断能被响应,一旦响应后,就需要将PIEACKX相应为清零,以让它能够响应该组中后边过来的中断。
举个例子,如果要使CPU反应INT1.1的中断,
就需要
PIEIFR1.1 标志位置1
PIEIER1.1 使能位置1
PIEACK1 响应标志位清0
IFR 全局标志位置1(只对INT1-INT12)
IER 全局中断使能置1(只对INT1-INT12)